画像の読み込みがうまくいかない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
dic
記事: 658
登録日時: 14年前
住所: 宮崎県
連絡を取る:

画像の読み込みがうまくいかない

#1

投稿記事 by dic » 14年前

簡単に言うとテトリスを作ってます

そこで、テトリスのブロックを積み上げる画面で 背景を読み込み、描画しているのですが
この画像の読み込みがうまくいっていないのか、ねらったとおりに描画できません

説明しづらいので、動画でそのときをキャプチャしました

static IMAGE s_Stage01; // これにステージ画像が読み込まれる

s_Stage01 = DEF_DXDRAW->LoadBitmap( "image\\ステージ背景.bmp" );

s_Stage01を描画

しているのですが、なぜか灰色の背景しか描画されません
灰色の描画をする命令はどこにもなく、またs_Stage01の画像しか描画指定してないのです
ログファイルを見てみました
| DXDRAW3 オブジェクト初期化 開始
| DXDRAW3 ウィンドウモードの初期化 開始
+ DirectDraw の生成 - success
+ 強調レベルの設定 (DDSCL_NORMAL) - success
+ プライマリ・バッファの作成 - success
+ CreateClipper - success
+ バックバッファの作成 - success
+ クリッパーの設定 - success
+ パレットの生成 - success
+ パレットのセット - success
| DXDRAW3 ウィンドウモードの初期化 終了
| DXDRAW3 オブジェクト初期化 終了
FileName: image\タイトル(背景).bmp を ロードしました。
FileName: image\ステージ背景.bmp を ロードしました。
| DXDRAW3 オブジェクトの開放 開始
| DXDRAW3 オブジェクトの開放 終了
| サーフェイス開放チェック
DXDRAW3::LoadBitmap: 2
DXDRAW3::ReleaseSurface: 2
となり読み込み、開放ともに正常にできているようです

[youtube][/youtube]
再起動してみましたが、同じでした
何が原因か分かるかたいないでしょうか?

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

Re: 画像の読み込みがうまくいかない

#2

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

デバッグの基本なのですが、次のことを確認されていますか?。
・s_Stage01にちゃんとした戻り値が入っていることは確認されていますのでしょうか?
・s_Stage01の描画が行われているのはデバッガで確認されていますか?
・s_Stage01の画像が壊れている可能性はありませんか?他の画像にしたらどうなりますか?

[追記]
上記のいずれでも無かったらソースコードを添付してください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

dic
記事: 658
登録日時: 14年前
住所: 宮崎県
連絡を取る:

Re: 画像の読み込みがうまくいかない

#3

投稿記事 by dic » 14年前

>>softyaさん
上3つ全部確認したのですが、やはりダメでした

必要な部分のみのソースコードを貼ります

ただ気になることが
下のGameInit() 内で s_Stage01, s_Title01 を初期化してますが
今のところはs_Stage01だけ問題なのですが、s_Title01の方の画像も変えてみましたが、この変更した
画像ファイルを読み込んでいませんでした
問題がライブラリの内部かもしれないので、いろいろいじってみます

コード:

//====================================
static	IMAGE	s_Title01;
static	IMAGE	s_Stage01;	//	ステージの背景
static	int		s_Index;	//	汎用変数、カーソルの位置を覚えておく
static	int		s_Level;	//	現在のゲームのレベル
static	int		s_Load;		//	ロードするセーブデータの番号
//====================================
//	ゲームで使用するリソースをすべて読み込みます
void	GameInit()
{
	s_Title01 = DEF_DXDRAW->LoadBitmap( "image\\タイトル(背景).bmp" );
	s_Stage01 = DEF_DXDRAW->LoadBitmap( "image\\ステージ背景.bmp" );
	s_GameInit = true;
}
//====================================
void	Function2100()
{
	//	背景を描画
	RECT	src, dest;
	SetRect( &src, 0, 0, 800, 600 );
	SetRect( &dest, 0, 0, 800, 600 );
	DEF_DXDRAW->Blt( s_Stage01, src, dest );

	DWORD	dwInput  = DEF_DXINPUT->GetKeyState();
			dwInput |= DEF_DXINPUT->GetJoy1State();
	static	int	wait;
	if( wait == 0 )
	{
		ModeBlock();			//	状況に応じたブロックの作成
		MoveBlock( dwInput );	//	ブロックの移動、回転処理
		wait = 1;
	}
	DrawBlock();			//	ブロックの描画
	if( dwInput == 0 )
		wait = 0;
}


dic
記事: 658
登録日時: 14年前
住所: 宮崎県
連絡を取る:

Re: 画像の読み込みがうまくいかない

#4

投稿記事 by dic » 14年前

私のおもいつくことすべて試しましたがダメでした
完全にお手上げです

ソースコード一式全部アップしておきました
http://www1.axfc.net/uploader/Sc/so/212040

ほとんどは tetorisu.cpp 内に書いてます
VC++6.0 環境なので、上位バージョンでは変換が必要かと思います

dic
記事: 658
登録日時: 14年前
住所: 宮崎県
連絡を取る:

Re: 画像の読み込みがうまくいかない

#5

投稿記事 by dic » 14年前

一回全部中間ファイルを消して
Debugフォルダも消して
全部コンパイルしなおしたら直りました

ソースコードは消させてもらいました

中間ファイルが原因だったのでしょう
解決しました
ありがとうございました

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

Re: 画像の読み込みがうまくいかない

#6

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

直って良かったですね。
症状を見ると依存関係のVC+の認識に問題があるみたいなので全部のソースやヘッダがソリューションに登録されているか確認されたほうが良いと思いますね。
参考まで。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

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