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

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

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

#1

投稿記事 by Thanmz » 11年前

コード:

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

コード:

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

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

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

#2

投稿記事 by みけCAT » 11年前

Thanmz さんが書きました:ProcessMessage()などの関数は全コード中に一カ所だけ記述すべきであるという鉄則にのっとると
①で処理の流れを停止させる方法ではダメですよね?
はい。そうですね。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

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

#3

投稿記事 by softya(ソフト屋) » 11年前

シューティングの敵機の動きとか同時に何機も動きをバラバラに制御しますよね。
ああ言うことは、敵機毎に状態を持っていて制御していますが、whileループは一つで済んでしまいます。
フラッシュも画面の状態ですので、whileループは一つで済んでしまうのです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

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