DXライブラリ描画の仕方

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ロストフ

DXライブラリ描画の仕方

#1

投稿記事 by ロストフ » 8年前

描画処理をやろうとしたところ、早速詰まってしまいました

コード:

#include "DxLib.h"
#include "a.h"


void Draw(); 
void Load();
int huragu=1;
int caunto=2;


// WinMain関数
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
                     LPSTR lpCmdLine, int nCmdShow )
{
    
   ChangeWindowMode( TRUE ) ;
 
 
   DxLib_Init();   

 
while(!ProcessMessage() && !ClearDrawScreen()){

    if(caunto==!huragu){
         Load();
	 huragu=caunto;
    };	 
    
    Draw();   
    
    WaitTimer( 20 ) ;
 
 }     
 
    // DXライブラリ使用の終了処理
    DxLib_End() ;
 
    // ソフトの終了
    return 0 ;
}

コード:

#include "Dxlib.h"
#include "a.h" 

void Draw();
void Load();

a1 a[2]={
	{0,0,"aaa.png"}, 
        {0,0,"bbb.png"}
};


void Load(){

   for(int i=0; i<2 ; i++){
      kyara[i].hand=LoadGraph(a[i].name);
   };
 
}

void Draw(){
    
    for(int i=0; i<2 ; i++){
       
        DrawGraph(a[i].x,a[i].y,a[i].hand,TRUE);

    };	

}  
こんな簡単なコードなのですがなぜが実行結果がうまくいきません
コンパイルエラーはでないのですが画像が表示されず黒い画面のままです
自分はif文が書かれている部分がおかしいのかなと思ってのですが分かりません
画像データがある位置はデバッグファイルの中なのであっていると思うのですが

hidden

Re: DXライブラリ描画の仕方

#2

投稿記事 by hidden » 8年前

環境とかどう実行したのかとか書いてくださいね。
環境が明記されていないので断言できませんが
VC++の環境上からの実行でそのパスならプロジェクトのあるフォルダに入れてください。

Sigma
記事: 20
登録日時: 8年前

Re: DXライブラリ描画の仕方

#3

投稿記事 by Sigma » 8年前

まずコードそれぞれのファイル名が記述されてないと正確にはわかりません。
おそらくはaという名で宣言してるのにkyaraという名で参照してるからだと思いますが…

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: DXライブラリ描画の仕方

#4

投稿記事 by softya(ソフト屋) » 8年前

VC++なら[プロジェクト名].vscprojのあるフォルダにファイルを置いてください。

あと、プロトタイプ宣言の
void Draw();
void Load();
もa.hに書いたほうが良いと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ロストフ

Re: DXライブラリ描画の仕方

#5

投稿記事 by ロストフ » 8年前

コード:

#include "DxLib.h"
#include "a.h"
 
 
void Draw(); 
void Load();
int huragu=1;
int caunto=2;
 
 
// WinMain関数
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
                     LPSTR lpCmdLine, int nCmdShow )
{
    
   ChangeWindowMode( TRUE ) ;
 
 
   DxLib_Init();   
 
 
while(!ProcessMessage() && !ClearDrawScreen()){
 
    if(caunto==!huragu){
         Load();
     huragu=caunto;
    };   
    
    Draw();   
    
    WaitTimer( 20 ) ;
 
 }     
 
    // DXライブラリ使用の終了処理
    DxLib_End() ;
 
    // ソフトの終了
    return 0 ;
}

コード:

#include "Dxlib.h"
#include "a.h" 
 
void Draw();
void Load();
 
a1 a[2]={
    {0,0,"aaa.png"}, 
        {0,0,"bbb.png"}
};
 
 
void Load(){
 
   for(int i=0; i<2 ; i++){
      a[i].hand=LoadGraph(a[i].name);
   };
 
}
 
void Draw(){
    
    for(int i=0; i<2 ; i++){
       
        DrawGraph(a[i].x,a[i].y,a[i].hand,TRUE);
 
    };  
 
}
一部、書き間違いがあったので訂正します(指摘してくださったkyaraのところです)

BCC Developerの場合はどうしてやるべきでしょう?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: DXライブラリ描画の仕方

#6

投稿記事 by softya(ソフト屋) » 8年前

『Debug』というフォルダで合っていると思いますが、実行時に書かれるLog.txtを確認してみてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
みけCAT
記事: 6273
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: DXライブラリ描画の仕方

#7

投稿記事 by みけCAT » 8年前

コード:

if(caunto==!huragu){

コード:

if(caunto!=huragu){
の間違いではないでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ロストフ

Re: DXライブラリ描画の仕方

#8

投稿記事 by ロストフ » 8年前

〉〉みけCATさん
まさにその通りでした 提示された部分を変えたらうまくいきました
自分はこの値とこの値が一緒じゃなかったらという意味で
比較演算子を使うんじゃないかなぁと勝手に決めつけていたのですが
なぜ代入文?なのでしょうか?それはそういうものと割り切った方がいいでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: DXライブラリ描画の仕方

#9

投稿記事 by softya(ソフト屋) » 8年前

!=は代入演算子じゃなくて関係(比較)演算子です。
「C++_演算子」
http://www.geocities.jp/cbc_vbnet/vc/enzan.html

たとえば、
int huragu=1;
int caunto=2;

caunto==!huragu
だと!が論理演算子なので
(!huragu)で0になります。
つまり、
caunto==0
って聞いているのと同じですね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ロストフ

Re: DXライブラリ描画の仕方

#10

投稿記事 by ロストフ » 8年前

皆様、ありがとうございました
おかげでなんとか初歩を解決できました
今回、学んだことは生かしていきます

ロストフ

Re: DXライブラリ描画の仕方

#11

投稿記事 by ロストフ » 8年前

もう一回、質問
背景にでかい絵をどんとおきたいのですがウインドウサイズ?は何ドット×何ドットですか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: DXライブラリ描画の仕方

#12

投稿記事 by softya(ソフト屋) » 8年前

DXライブラリのデフォルトは、640x480だったはずです。
自分で好きなサイズに変えることも出来ます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る