0

私は、インターフェースとシミュレーターを分離しようとしたゲームを書いています(どちらも別々のタイミング回路で実行されます-理論はアニメーションが同期し、シミュレーションは1秒間に10回しか実行できません...か何か)

TFPTimerに問題があります。次のようにGamesコンストラクターで初期化されます。

//Create the game timer
InternalTimer := TFPTimer.Create(nil);
//Set the OnTick callback
InternalTimer.OnTimer := @OnTick;
//Set the timer interval
InternalTimer.Interval := DEFAULT_INTERNAL_TIMER; // =10
//Start the timer
InternalTimer.StartTimer;

問題は、OnTickが呼び出されていないように見えることです。SDL_Delayを含むクライアントの下で別のループを実行しています。どういうわけかTFPTimerをイベント化する必要がありますか?独自のスレッドを与える必要がありますか(またはすでにスレッドがありますか?)タイマーを機能させるためのアイデアはありますか?

ありがとう

ラクラン

4

1 に答える 1

1

イベントはメインイベントループから発生します。プログラムがDelphi/Lazarusの意味でイベント駆動型でない場合は、おそらく機能しません。

スリープの間にapplication.processmessagesを試してください

于 2010-12-31T19:00:42.637 に答える