[過去ログ] Delphiゲームプログラミング相談室 (976レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
825: 815 [sage] 2006/04/21(金) 21:56:53 ID:ASot9yYT(1) AAS
>>816
816(2): [sage] 2006/04/20(木) 23:34:26 ID:ftoD76SU(1) AAS
>>815
ゲームループの実装手法と Windows のメッセージ構造が関係しとる。

大抵そういうゲームは、アイドル時間を利用してゲームループ回してる。
アイドル( idle )ってのは車のアイドリング(空転)と同じで、いわゆる「暇」のこと。
ちなみに Delphi だと TApplication.OnIdle とかで簡単にアイドル状態をキャッチできる。
詳しい実装方法は Delphi ゲーム製作講座に書いてあるよ。

で、なんで止まってるように見えるかというと、
メニュー開いてるときとか、他にもウィンドウをドラッグしてる最中とかは、
そっちの処理のほうが忙しくなるので、ウィンドウ( TForm )の処理に構っていられなくなる。
暇( idle )じゃなくなるってことだな。
その結果ループが止まり、描画処理が行われず、画面が止まってるように見える。

つまり、プログラマが何らかのイベントを用いて意図的に停止?動作させているわけではなく、
勝手にそうなっちゃう、が正解。
もしそんな状況でも動作させつづけたいなら、スレッド( TThread )とか使えば良いんじゃないかな。

だめだ
死ぬ

たいしたゲームじゃないんでTTimer使って速度調整していたんですが、
アドバイス通りOnIdle使ってみました。
たしかに勝手に止まりますね。
1-
あと 151 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.010s