ページ 11

ゲーム全体の流れについて

Posted: 2014年8月10日(日) 12:18
by Thanmz

コード:

if ( ボタンを押したとき ) {
  flash() ; // 画面を数秒間フラッシュ・・・・・・・・①
}
といった処理をする場合、今まではflash()内で以下のコード

コード:

while ( ProcessMessage() == 0 ) {
  ClearDrawScreen() ;
  画面の輝度など調整
  ScreenFlip() ;
  if ( frame == 60 ) {
    break ;
  }
  frame ++ ;
}
を記述して①の位置で処理の流れを停止させて、フラッシュが終わったら②の処理をさせる、といった方法をとっていました。
しかし、ProcessMessage()などの関数は全コード中に一カ所だけ記述すべきであるという鉄則にのっとると
①で処理の流れを停止させる方法ではダメですよね?

Re: ゲーム全体の流れについて

Posted: 2014年8月10日(日) 12:42
by みけCAT
Thanmz さんが書きました:ProcessMessage()などの関数は全コード中に一カ所だけ記述すべきであるという鉄則にのっとると
①で処理の流れを停止させる方法ではダメですよね?
はい。そうですね。

Re: ゲーム全体の流れについて

Posted: 2014年8月10日(日) 13:22
by softya(ソフト屋)
シューティングの敵機の動きとか同時に何機も動きをバラバラに制御しますよね。
ああ言うことは、敵機毎に状態を持っていて制御していますが、whileループは一つで済んでしまいます。
フラッシュも画面の状態ですので、whileループは一つで済んでしまうのです。