ページ 11

カウントダウンを作りたい

Posted: 2012年10月03日(水) 22:16
by へぶん
ゲームを作っています。

キーを押したら、時間経過で

3

2

1

と数字が変わるようにしたいのですが、forやwhileを使ってもうまくいきません。
while(count<500){
if(count>0){
DrawString(-----);
count++
}
}
のようなものをやってみました。
助言やソースコードをくださいm(_ _)m

Re:

Posted: 2012年10月03日(水) 22:18
by へぶん
すみません;;
件名とユーザ名を逆に書いてしまいました;;

Re: カウントダウンを作りたい

Posted: 2012年10月03日(水) 22:29
by softya(ソフト屋)
件名とユーザー名は直しておきました。
それとcodeタグを使ってくださいね。

質問は、DXLIBを使用ということで宜しいのでしょうか?
カウントを表示する場合は表示するために必ずScreenFlip()などの一連処理を通るようにしてください。そうしないと画面に反映されません。
なのでforもwhileもループで回しても表示はされません。

コード:

        // while( 裏画面を表画面に反映, メッセージ処理, 画面クリア )
        while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){

                // ここに処理を書く。

        }
「ここに処理を書く。」で表示待ちを含むループさせることはしてはいけませんので、お願いします。

Re: カウントダウンを作りたい

Posted: 2012年10月03日(水) 22:42
by へぶん
変更ありがとうございます。
Dxlib使用です。

そのwhileに書いていました;
その中に入れるとどのような問題がありますか?

Re: カウントダウンを作りたい

Posted: 2012年10月03日(水) 22:49
by softya(ソフト屋)
上に書いていますが、ScreenFlip()を通過しないと表示されません。
500カウントするならcountの値が変わる度にDrawString(-----);した上でwhile( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 )を通過させる必要があります。

Re: カウントダウンを作りたい

Posted: 2012年10月03日(水) 23:00
by へぶん
できました!ありがとうございます!

画像処理の際にはScreenFlipを入れることを心がけます。

Re: カウントダウンを作りたい

Posted: 2012年10月03日(水) 23:04
by softya(ソフト屋)
へぶん さんが書きました:できました!ありがとうございます!

画像処理の際にはScreenFlipを入れることを心がけます。
ちなみに次の事はしないでくださいね。
「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ] 補足資料.11章 書いてはいけない4つの処理」
http://dixq.net/g/h_11.html

特に「不適切な実装3. あちこちにDXライブラリ3大処理がある」はやってはいけません。

Re: カウントダウンを作りたい

Posted: 2012年10月03日(水) 23:15
by へぶん
それはやってはいないので大丈夫です。