我有一个带有可见运行计时器的游戏,但只能达到小数点后 2 位的精度(#.##)。这是框架的限制,还是有解决方法?我试图在这个计时器上达到 4-6 位的准确度(#.######)。
问问题
117 次
2 回答
2
iOS 上的计时器以 60Hz 的最大频率运行,这就是为什么您只能获得 2 位精度的原因。
您可以通过花时间和活动开始来解决问题,然后在活动结束时花时间并计算差异。不过,这次不会考虑帧率下降、暂停和进入后台等因素。
于 2013-01-24T22:04:07.210 回答
1
这是底层系统的限制。iOS 不是一个实时系统,定时器在所谓的运行循环中被调度,一旦定时器到期就会调度定时器。然而,为了让计时器准确调度,运行循环必须足够频繁地运行并在每次迭代时检查计时器。然而,运行循环也运行其他东西,例如整个事件机制、消息和网络都在运行循环上运行,所以你的计时器不会每隔几纳秒检查一次(而且,运行循环不会持续运行,但会给出一些时间也回到系统)
于 2013-01-24T22:05:14.433 回答