【问题标题】:Running timer accuracy within Cocos2d environmentCocos2d 环境下运行定时器精度
【发布时间】:2013-01-24 22:00:10
【问题描述】:

我有一个带有可见运行计时器的游戏,但只能达到小数点后 2 位的准确度 (#.##)。这是框架的限制,还是有解决方法?我正在尝试在此计时器上实现 4-6 位的准确度 (#.######)。

【问题讨论】:

标签: ios cocos2d-iphone timing


【解决方案1】:

iOS 上的计时器以 60Hz 的最大频率运行,这就是为什么您只能获得 2 位精度的原因。

您可以通过花时间和活动开始时间来解决问题,然后在活动结束时花时间并计算差异。不过,这次不会考虑帧率下降、暂停和进入后台等因素。

【讨论】:

    【解决方案2】:

    这是底层系统的限制。 iOS 不是一个实时系统,定时器在所谓的运行循环中被调度,一旦定时器到期就会调度定时器。然而,为了让定时器准确调度,运行循环必须足够频繁地运行并在每次迭代时检查定时器。然而,运行循环也运行其他东西,例如整个事件机制、消息和网络都在运行循环上运行,所以你的计时器不会每隔几纳秒检查一次(而且,运行循环不会持续运行,但会给出一些时间也回到系统)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多