Cocos2d iphone 两个计时器之间的差异

Cocos2d iphone 两个计时器之间的差异,cocos2d-iphone,Cocos2d Iphone,我的游戏需要两个计时器,一个以秒计,另一个以毫秒计。我有两个标签,函数和变量。第一个函数的间隔为1.0,另一个函数的间隔为0.001。但是0.001定时器总是比1.0慢(例如700ms和1s)。我怎样才能修好它?嗯。。。为什么不使用一个计时器,并在1k毫秒内打勾一秒钟?设置标志,调用func。等等。我想不出一个好的理由需要不止一个计时器(除了为硬件提供服务的微控制器,但显然这不是你在做的事情)。你为什么要数秒?您是否应该根据时钟开始和当前时钟之间的差异来计算时间?这将使计时器匹配,因为它们来自相

我的游戏需要两个计时器,一个以秒计,另一个以毫秒计。我有两个标签,函数和变量。第一个函数的间隔为1.0,另一个函数的间隔为0.001。但是0.001定时器总是比1.0慢(例如700ms和1s)。我怎样才能修好它?

嗯。。。为什么不使用一个计时器,并在1k毫秒内打勾一秒钟?设置标志,调用func。等等。我想不出一个好的理由需要不止一个计时器(除了为硬件提供服务的微控制器,但显然这不是你在做的事情)。

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

您决不能假设在N毫秒触发的计时器将恰好在该时间间隔调用

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

此外,如果您正在处理计时器触发器中耗时超过一毫秒的某个事件,则实际上您将“跳过”某些触发器,并获得您描述的较低值

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


这不是问题所在。问题是,当1k毫秒过去时,实际上超过了1秒。在两个计时器上???您使用的是哪个版本的iOS和什么设备?也许你最好发布你的代码-这一个需要复制。(很难相信你所说的正在发生!但我确实给了你怀疑的好处。我们可以在代码方面提供更多帮助。期望任何东西在非硬实时操作系统上以1KHz的频率可靠地执行都会让人失望。然而,即使在@1KHz时,1秒700毫秒也远远超出了容忍范围……除非,用户2719716,你将这些累积到tals超过几分钟,只显示了平均的坏结果。如果是这样,那么ipmcc已经解决了您的问题。好的,让我们假设我需要秒表而不是计时器。我需要他在一秒钟后显示1000毫秒。然后我该怎么办?当您启动“秒表”时,保存日期时间,然后在每次调用计时器时,检查如何操作通过将保存的时间与“现在”进行比较,已过y毫秒。显示此值,并在>1000时停止或执行任何操作。