TFPTimer没有“滴答”

时间:2010-12-30 12:31:10

标签: lazarus freepascal

我正在编写一个游戏,我试图在界面和模拟器之间进行分离(两者都使用独立的计时电路运行 - 理论是动画将同步,模拟每秒只能运行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?我应该给它自己的线程(或者它已经有一个吗?)任何关于让我的计时器工作的想法?

由于

拉​​克伦

1 个答案:

答案 0 :(得分:1)

事件来自主事件循环。如果您的程序在Delphi / Lazarus意义上不是事件驱动的,它可能不起作用。

在sleeps之间尝试application.processmessages