0

我正在编写一个游戏,我试图将界面和模拟器分开(两者都使用单独的计时电路运行 - 理论上动画将同步,并且模拟每秒只能运行 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 回答