描画されない画像

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

描画されない画像

#1

投稿記事 by Gluek » 7年前

こんばんわ、Gluekです

ゲーム制作の為にC言語を勉強中の者です。

今龍神録のプログラムの一例を参考にして画像の描写をしているのですが、画像が描写されません。龍神録のとは書き方が一部異なりますが、それが原因なのでしょうか・・・


↓今組んでる全てのプログラム


main.cpp

コード:

#define GLOBAL_INSTANCE
#include "DxLib.h"
#include "GV.h"
#include "sturuct.h"



extern int GetHitKeyStateAll_2();

extern int CheckStateKey(unsigned char Handle);

extern void load();

extern void graph_main();

int img_ch[2][12];
ch_t ch;

//ループで必ず行う処理
int ProcessLoop(){
	if(ProcessMessage()!=0)return -1;
	if(ClearDrawScreen()!=0)return -1;
	GetHitKeyStateAll_2();
	return 0;
}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
	ChangeWindowMode(TRUE);
	if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//一括した

	load();

			 while(ProcessLoop()==0){//メインループ

				 graph_main();

				 if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;
				 ScreenFlip();//裏画面反映

			 }

        DxLib_End();    // DXライブラリ終了処理
        return 0;
}
key.cpp

コード:

#include "DxLib.h"
#include "GV.h"

unsigned int stateKey[256];

int Key[256];

int GetHitKeyStateAll_2(){
	char GetHitKeyStateAll_Key[256];
	GetHitKeyStateAll( GetHitKeyStateAll_Key );
	for(int i=0;i<256;i++){
		if(GetHitKeyStateAll_Key[i]==1) stateKey[i]++;
		else							stateKey[i]=0;
	}
	return 0;
}

int CheckStateKey(unsigned char Handle){
		return stateKey[Handle];
}
load.cpp

コード:

#include "DxLib.h"
#include "GV.h"
#include "sturuct.h"

extern int img_ch[2][12];

void load(){
	LoadDivGraph( "../画像/キャラ画像/chara.png" , 96 , 12 , 8 , 20 , 30 , img_ch[0] ) ;
}
graph.cpp

コード:

#include "DxLib.h"
#include "GV.h"
#include "sturuct.h"

extern ch_t ch;
extern int img_ch[2][12];

void graph_ch(){
		DrawRotaGraphF(ch.x,ch.y,1.0f,0.0f,img_ch[0][ch.img],TRUE);
}

void graph_main(){
		graph_ch();
}
sturuct.h

コード:

typedef struct{
	int flag;       //フラグ
        int cnt;        //カウンタ
        int power;      //パワー
        int point;      //ポイント
        int score;      //スコア
        int num;        //残機数
        int mutekicnt;  //無敵状態とカウント
        int shot_mode;  //ショットモード
        int money;      //お金
        int img;        //画像
        int slow;       //スローかどうか
        double x,y;     //座標
}ch_t;
GV.hはなにも書いていません



一体どこがおかしいのでしょうか?

beatle
記事: 1280
登録日時: 8年前
住所: 埼玉
連絡を取る:

Re: 描画されない画像

#2

投稿記事 by beatle » 7年前

想像でしかないのですが、ch構造体に何も値が設定されてないのが原因でしょうかね。

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

Re: 描画されない画像

#3

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

読み込みエラーの可能性もあると思うので、Log.txtにエラーが出ていないか確認するだと思います。
デバッガでハンドル値が正常か確認するのもひとつの方法です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Gluek

Re: 描画されない画像

#4

投稿記事 by Gluek » 7年前

組んだプログラム自体に異常はないということなのでしょうか?

それとLogといいますとデバッグしてるときに出力の欄に出ているものですか?

アバター
てんむすキツネ
記事: 88
登録日時: 8年前
住所: 岡山

Re: 描画されない画像

#5

投稿記事 by てんむすキツネ » 7年前

まず画像がきちんとロードされているか、
描画する際にその値が保持されているか調べてみてはどうでしょう。

Logを見る以外にも
ブレークポイントを使うことで
その時の値を調べられます。
MLP!MLP!

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

Re: 描画されない画像

#6

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

Gluek さんが書きました:組んだプログラム自体に異常はないということなのでしょうか?
それを確認するためにデバッグを行います。
作ったプログラムが、そのまま動くことは稀で何らかの問題があることがほとんどです。
いろんな方法でバグがないか調べるんですが、それはプログラムを作る人が考えないといけません。

その為の方法の一つとしてVC++に搭載されているデバッガを使う方法があります。
デバッガは任意の行で動作を中断して変数の状態を確認する事ができます。
つまり何らかの方法で変数の値が正しいか確認すると言うことです。
Gluek さんが書きました: それとLogといいますとデバッグしてるときに出力の欄に出ているものですか?
Log.txtはDXライブラリが出力するログファイルでプロジェクトフォルダに生成されます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Gluek

Re: 描画されない画像

#7

投稿記事 by Gluek » 7年前

Logを確認してみました


確かに画像のロードに失敗してると書いてありました・・・

Gluek

Re: 描画されない画像

#8

投稿記事 by Gluek » 7年前

Gluek さんが書きました:Logを確認してみました


確かに画像のロードに失敗してると書いてありました・・・

付け加えで、デバッガってブレークポイントと同じじゃないんですか?

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

Re: 描画されない画像

#9

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

Gluek さんが書きました: 付け加えで、デバッガってブレークポイントと同じじゃないんですか?
ブレークポイントはデバッガの機能のほんの一部です。
「デバッガの使用方法」
http://msdn.microsoft.com/ja-jp/library ... s.71).aspx
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

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