-2

我的游戏中需要两个计时器,一个以秒为单位计数,另一个以毫秒为单位。我有 2 个标签、函数和变量。第一个函数的间隔为 1.0,另一个函数的间隔为 0.001。但是 0.001 计时器总是比 1.0 慢(例如 700ms 和 1s)。我该如何解决?

4

3 回答 3

2

您永远不应该假设在 N 毫秒触发的计时器将在该时间间隔被调用。

计时器设计为在至少等待N 毫秒后触发,并且由于线程优先级,它几乎肯定会在更长的等待后触发。

此外,如果您在计时器触发器中处理的时间超过一毫秒,您将基本上“跳过”一些触发器并获得您描述的较低值。

要获取经过的时间,请使用日期差异,而不是计时器。

获取经过的时间(Objective-c)

于 2013-08-30T01:42:42.463 回答
0

嗯......为什么不只使用一个计时器并勾选 1k ms。一秒钟。? 设置标志,调用函数。等等。我想不出一个需要多个计时器的充分理由(除了为硬件提供服务的微控制器,但显然这不是你在做的事情)。

于 2013-08-30T01:39:10.380 回答
0

你为什么要数秒?你不应该根据时钟开始和当前时钟之间的差异来计算时间吗?这将使计时器匹配,因为它们来自相同的参考。听起来您实际上是在根据计时器任务进行计数。这将使累积时间取决于线程执行等。

于 2013-08-30T01:39:42.093 回答