簡単に言うとテトリスを作ってます
そこで、テトリスのブロックを積み上げる画面で 背景を読み込み、描画しているのですが
この画像の読み込みがうまくいっていないのか、ねらったとおりに描画できません
説明しづらいので、動画でそのときをキャプチャしました
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: 画像の読み込みがうまくいかない
デバッグの基本なのですが、次のことを確認されていますか?。
・s_Stage01にちゃんとした戻り値が入っていることは確認されていますのでしょうか?
・s_Stage01の描画が行われているのはデバッガで確認されていますか?
・s_Stage01の画像が壊れている可能性はありませんか?他の画像にしたらどうなりますか?
[追記]
上記のいずれでも無かったらソースコードを添付してください。
・s_Stage01にちゃんとした戻り値が入っていることは確認されていますのでしょうか?
・s_Stage01の描画が行われているのはデバッガで確認されていますか?
・s_Stage01の画像が壊れている可能性はありませんか?他の画像にしたらどうなりますか?
[追記]
上記のいずれでも無かったらソースコードを添付してください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 画像の読み込みがうまくいかない
>>softyaさん
上3つ全部確認したのですが、やはりダメでした
必要な部分のみのソースコードを貼ります
ただ気になることが
下のGameInit() 内で s_Stage01, s_Title01 を初期化してますが
今のところはs_Stage01だけ問題なのですが、s_Title01の方の画像も変えてみましたが、この変更した
画像ファイルを読み込んでいませんでした
問題がライブラリの内部かもしれないので、いろいろいじってみます
上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;
}
Re: 画像の読み込みがうまくいかない
私のおもいつくことすべて試しましたがダメでした
完全にお手上げです
ソースコード一式全部アップしておきました
http://www1.axfc.net/uploader/Sc/so/212040
ほとんどは tetorisu.cpp 内に書いてます
VC++6.0 環境なので、上位バージョンでは変換が必要かと思います
完全にお手上げです
ソースコード一式全部アップしておきました
http://www1.axfc.net/uploader/Sc/so/212040
ほとんどは tetorisu.cpp 内に書いてます
VC++6.0 環境なので、上位バージョンでは変換が必要かと思います
Re: 画像の読み込みがうまくいかない
一回全部中間ファイルを消して
Debugフォルダも消して
全部コンパイルしなおしたら直りました
ソースコードは消させてもらいました
中間ファイルが原因だったのでしょう
解決しました
ありがとうございました
Debugフォルダも消して
全部コンパイルしなおしたら直りました
ソースコードは消させてもらいました
中間ファイルが原因だったのでしょう
解決しました
ありがとうございました
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 画像の読み込みがうまくいかない
直って良かったですね。
症状を見ると依存関係のVC+の認識に問題があるみたいなので全部のソースやヘッダがソリューションに登録されているか確認されたほうが良いと思いますね。
参考まで。
症状を見ると依存関係のVC+の認識に問題があるみたいなので全部のソースやヘッダがソリューションに登録されているか確認されたほうが良いと思いますね。
参考まで。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。