トップページ > 過去ログ > 記事閲覧
サンプルがうまく実行できない
名前:だいち 日時: 2008/10/03 17:42

初めまして DXライブラリVisualC++用(Ver2.24c)をダウンロードして「DXライブラリの使い方」にのっている画面中心に点を打つプログラムを実行してみたのですが、画面が真っ黒になったまま動かずに、キーを押すと一瞬だけ画面に点が表示されてその後すぐに画面が消えてしまいます。 〜入門編〜0.のサンプルプログラムを実行しても同様の結果が出てしまいました。 どうすれば問題が解決できるのでしょうか? 環境としては「Microsoft Visual C++ 2008 Express Edition」、OSはVistaです。 よろしくお願いします。

Page: 1 |

Re: サンプルがうまく実行できない ( No.1 )
名前:夢夢 日時:2008/10/03 18:35

いえ、うまく実行できてますよ。 DrawPixelではわかりづらいので DrawPixel( 320 , 240 , 0xffff ) ; の部分を DrawBox( 320 , 240 , 340 , 260 , GetColor( 0 , 0 , 255 ) , TRUE) ; に変えてみて実行してみてください。 画面の真ん中に青い四角が表示されるはずです。 それが表示されるのであれば、正常にプログラムがうごいているということです。
Re: サンプルがうまく実行できない ( No.2 )
名前:だいち 日時:2008/10/03 19:55

>夢夢さん 実行すると青い箱が表示されたのですが、 表示されてすぐに画面が消えてしまうのは正常なんでしょうか? 〜入門編〜0.を見る限り、実行すると画面左側にキャラが キー入力をするまで表示され続けるものだと思うのですが…… それが出来ないというのは一体何が問題なのでしょうか? 度々よろしくお願いします。
Re: サンプルがうまく実行できない ( No.3 )
名前:夢夢 日時:2008/10/03 23:36

キャラというのは画像のことでしょうか? #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } // BMP画像の表示 LoadGraphScreen( 0 , 0 , "test1.bmp" , TRUE ) ; WaitKey() ; // キーの入力待ち(『WaitKey』を使用) DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } LoadGraphScreenという関数で画面座標X:0 Y:0の位置にtest.bmpファイルを画面に表示しています これで出ますか?
Re: サンプルがうまく実行できない ( No.4 )
名前:だいち 日時:2008/10/04 00:44

画像は表示されたのですが、やはり一瞬だけ表示された後画面が消えてしまいます。 これで本当に正常なのでしょうか?
Re: サンプルがうまく実行できない ( No.5 )
名前:夢夢 日時:2008/10/04 02:23

起動→画面が表示される→絵が表示される→何かキーが押されるまで待つ→終了 これがこのプログラムの全てです。 上から順番に処理を行い、全て処理されたらプログラムは終了します。 もしこの処理を永久に続けてほしい場合は int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) { // BMP画像の表示 LoadGraphScreen( 0 , 0 , "test1.bmp" , TRUE ) ; } WaitKey() ; // キーの入力待ち(『WaitKey』を使用) DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } このようにしてみてください。 while文でProcessMessage()の返り値が0でESCキーが押されていなければ 中の処理を永久に処理し続けます。 これでもわからない場合は基本的な構文から勉強したほうがいいかもしれません。 if文も知らなければ何を教えてもわからないと思いますので。
Re: サンプルがうまく実行できない ( No.6 )
名前:コイル 日時:2008/10/17 19:07

私も恐らくだいちさんと同じ状態なので、ここで質問させていただきます。 通常は 起動→画面が表示される→絵が表示される→何かキーが押されるまで待つ→終了 だということは分かるのですが、私の場合 起動→黒い画面が表示される→何かキーが押されるまで待つ→キーを押すと一瞬だけ絵が表示されて終了 となってしまいます。 また、色々とやったところ、例えば DrawPixel( 280 , 240 , 0xffff ); DrawPixel( 300 , 240 , 0xffff ); DrawBox( 320 , 240 , 340 , 260 , GetColor( 0 , 0 , 255 ) , TRUE) ; の場合は白い点2つは出てくるのですが、何かキーを押して終了する直前まで青い箱は現れません。 つまり一番最後の命令の絵だけ、何かキーを押した後に一瞬だけ表示されて終了になってしまいます。 色々と試してみましたが何が問題なのか分からないので、宜しくお願いします。
Re: サンプルがうまく実行できない ( No.7 )
名前:Will 日時:2008/10/17 20:09

コイルさんも環境はVistaですか?
Re: サンプルがうまく実行できない ( No.8 )
名前:Will 日時:2008/10/17 20:14

例えば DrawPixel( 280 , 240 , 0xffff ); DrawPixel( 300 , 240 , 0xffff ); DrawBox( 320 , 240 , 340 , 260 , GetColor( 0 , 0 , 255 ) , TRUE) ; WaitKey() ; WaitKey() ; としたらどのような動作でしょうか? DXライブラリ修正履歴の2.23にある > Vista の場合は表画面に直接描画しないように処理を修正。 これが影響しているような・・・?
Re: サンプルがうまく実行できない ( No.9 )
名前:コイル 日時:2008/10/17 21:36

すみません、書くのを忘れていました。 環境はOSはXPでMicrosoft Visual C++ 2008 Express Editionです。 Willさん 試してみました。 起動→画面が表示される→何かキーが押されるまで待つ→一回押すと変化なしで再び待つ→再度押すと一瞬だけ絵が表示されて終了 でした。 とりあえず今、最後は DrawPixel( 0 , 0 , 0xffff ); WaitKey() ; にして動かしています。
Re: サンプルがうまく実行できない ( No.10 )
名前:管理人 日時:2008/10/25 17:15

だいちさんの環境では恐らく表画面への描画が正常に動作して いないのだと思います DXライブラリでは表画面と裏画面の2画面がありまして、 通常のゲームでは表画面と入れ替えるまでは見ることができない 裏画面にまずゲーム画面を構築して、その後表画面と裏画面を 切り替えるということをします なので「裏画面したあと表画面と切り替え」ができれば実質問題は ありませんので、現在の不具合は気にせずそのまま裏画面を 使用するところまで進めてしまってください m(_ _)m

Page: 1 |