1.8章 ソースコードを短く書くの疑問

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
C++ビギニング

 1.8章 ソースコードを短く書くの疑問

#1

投稿記事 by C++ビギニング » 10年前

はじめまして。C++ビギニングと申します。
新・C言語~ゲームプログラミング~の1.8章「コードを短く書く」について質問です。

画像を表示させる手順として
while( 1 ){
  ①メッセージ処理をする;
  ②画面に描画した内容を消す;
  ③画像を描画する;
  ④裏画面に描いた内容を表画面に反映する;
}
このような順番でループしながら画像を表示しているんだなと理解できるんですが

それを下のようにまとめてしまってはどの順番で処理しているのかわからないと思うんです。
while(ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0)
たとえば①、②、④がはじめに処理され③が最後に処理されると裏画面処理をしないで画像を動かすみたいになるような気がします。
でも実際には正常に描写されますよね。
このときどういう順番で処理されているんですか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re:  1.8章 ソースコードを短く書くの疑問

#2

投稿記事 by h2so5 » 10年前

必ず左から順番に実行されることが決まっています。

C++ビギニング

Re:  1.8章 ソースコードを短く書くの疑問

#3

投稿記事 by C++ビギニング » 10年前

h2so5 さんが書きました:必ず左から順番に実行されることが決まっています。
そうだったんですね。ありがとうございます。
試にwhile(ProcessMessage() == 0 && ClearDrawScreen() == 0 && ScreenFlip() == 0)と書き換えたところ
実行結果が真っ暗になりました。裏画面処理したあとにClearDrawScreenで描写した内容が消されて真っ暗になったということですね?
それでは{}の中身はいつ実行されているんですか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re:  1.8章 ソースコードを短く書くの疑問

#4

投稿記事 by h2so5 » 10年前

ブロックの中身は条件が真ならば ScreenFlip() の直後に実行されます。

C++ビギニング

Re:  1.8章 ソースコードを短く書くの疑問

#5

投稿記事 by C++ビギニング » 10年前

h2so5 さんが書きました:ブロックの中身は条件が真ならば ScreenFlip() の直後に実行されます。
なるほど疑問が解けました。
ありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る