トップページ > 記事閲覧
ゲーム開始時の描画処理
名前:やま 日時: 2019/06/08 13:23

こんにちは。 ゲーム開始時に白い画面からどんどん黒くしていって、完全に黒になってからその他の処理を行おうと思っています。 コードとしては、 for (){ 画面を暗くする処理、暗くなったら出る。 } while (){ ここからゲーム開始、その他の処理と描画 } という作りにしましたがこの場合実行すると、ちゃんと起動時に画面は暗くなっていくのですが、完全に黒くなってもwhile以下の処理に移ってくれません。 for文をwhileの中に入れても同じでした。 どこがいけないかわかりません、ScreenFlipやClearDrawScreenはコード中で二回以上は使用できないとかあるですかね。
メンテ

Page: 1 |

Re: ゲーム開始時の描画処理 ( No.1 )
名前:かわ 日時:2019/06/08 13:36

実際のコードを書いた方が解決が早いと思います
メンテ
Re: ゲーム開始時の描画処理 ( No.2 )
名前:管理人 日時:2019/06/08 18:45

かわさんも仰られていますが、実際のプログラムを拝見できれば原因がわかると思います for で画面を暗くした後、while で四角形が左右に移動するプログラムを組んでみましたので こちらをやまさんの遭遇された現象が発生するように変更していただけないでしょうか? #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int x = 0, add = 8 ; // ウインドウモードで起動 ChangeWindowMode( TRUE ) ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ) ; // 背景を灰色にする SetBackgroundColor( 128,128,128 ) ; // 画面を暗くする処理、暗くなったら出る。 for( int i = 0 ; i < 255 ; i ++ ) { // 画面を初期化 ClearDrawScreen() ; // アルファブレンドで徐々に暗くする SetDrawBlendMode( DX_BLENDMODE_ALPHA, i ) ; // 画面全体を半透明の黒で塗りつぶし DrawBox( 0, 0, 640, 480, GetColor( 0,0,0 ), TRUE ) ; // 裏画面の内容を表画面に反映 ScreenFlip() ; } // ブレンド設定を元に戻す SetDrawBlendMode( DX_BLENDMODE_ALPHA, 255 ) ; // ここからゲーム開始、その他の処理と描画 while( ProcessMessage() == 0 ) { // 画面のクリア ClearDrawScreen() ; // 左右に移動する四角形の移動処理と描画 x += add ; if( x <= 0 || x >= 640 ) { add = -add ; } DrawBox( x, 0, x + 64, 64, GetColor( 255,255,255 ), TRUE ) ; // 裏画面の内容を表画面に反映 ScreenFlip() ; } // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; }
メンテ
Re: ゲーム開始時の描画処理 ( No.3 )
名前:やま(解決) 日時:2019/06/08 23:08

ありがとうございます。解決できました。 どうやら原因は暗くした後に明るさを戻していなかったため、見た目は画面が変わっていなかったようです。 ご指摘ありがとうございました、次からはコードを載せたいと思います。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存