はじめまして。C++ビギニングと申します。
新・C言語~ゲームプログラミング~の1.8章「コードを短く書く」について質問です。
画像を表示させる手順として
while( 1 ){
①メッセージ処理をする;
②画面に描画した内容を消す;
③画像を描画する;
④裏画面に描いた内容を表画面に反映する;
}
このような順番でループしながら画像を表示しているんだなと理解できるんですが
それを下のようにまとめてしまってはどの順番で処理しているのかわからないと思うんです。
while(ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0)
たとえば①、②、④がはじめに処理され③が最後に処理されると裏画面処理をしないで画像を動かすみたいになるような気がします。
でも実際には正常に描写されますよね。
このときどういう順番で処理されているんですか?
1.8章 ソースコードを短く書くの疑問
Re: 1.8章 ソースコードを短く書くの疑問
必ず左から順番に実行されることが決まっています。
Re: 1.8章 ソースコードを短く書くの疑問
そうだったんですね。ありがとうございます。h2so5 さんが書きました:必ず左から順番に実行されることが決まっています。
試にwhile(ProcessMessage() == 0 && ClearDrawScreen() == 0 && ScreenFlip() == 0)と書き換えたところ
実行結果が真っ暗になりました。裏画面処理したあとにClearDrawScreenで描写した内容が消されて真っ暗になったということですね?
それでは{}の中身はいつ実行されているんですか?
Re: 1.8章 ソースコードを短く書くの疑問
ブロックの中身は条件が真ならば ScreenFlip() の直後に実行されます。
Re: 1.8章 ソースコードを短く書くの疑問
なるほど疑問が解けました。h2so5 さんが書きました:ブロックの中身は条件が真ならば ScreenFlip() の直後に実行されます。
ありがとうございます。