CCRepeatForever 不会在睡眠后立即恢复
Posted
技术标签:
【中文标题】CCRepeatForever 不会在睡眠后立即恢复【英文标题】:CCRepeatForever not resuming immediately after sleep 【发布时间】:2013-05-26 00:17:52 【问题描述】:在一个由 cocos2D 驱动的 iphone 应用程序中,我使用 CCRepeatForever 动作使背景通过。当我调试应用程序(通过 XCode 构建和运行)时,它工作正常。即使我退出应用程序并恢复它,也没问题。 但是,当我将应用程序捆绑到 .ipa 中进行 beta 测试时,我遇到了一个奇怪的问题: 在启动时,背景很好地过去了。 但是,如果我退出应用程序并稍后恢复游戏,应用程序会将我带回到我离开它的地方,除了移动的背景之外一切正常。一段时间后(与我退出应用程序后的时间大致成正比),背景会重新开始移动,而无需我做任何特别的事情。 这是一个已知问题吗? 谢谢
【问题讨论】:
【参考方案1】:哦,我不久前遇到了一个非常相似的问题。我会暂停游戏,然后在恢复时什么都不会发生,然后它会突然跳起来,我会被怪物包围。
我无法准确告诉你去哪里看,但这是我正在做的事情:
我有一个计时器,它没有使用 (ccTime)dt 来计算时间,而是使用 NSDate 时间戳。问题是我有一个事件要根据日期安排在某个时间,但我使用 dt 来确定何时触发事件。
据我所知,暂停游戏就是暂停预定的事件,所以“dt”根本没有增加,但系统时钟一直在滴答作响,所以最终发生的事情是我会暂停说10 秒,系统时钟滴答作响并触发,但“dt”正在添加到浮点 timeElapsed,直到赶上,什么都没有发生。
您可能需要查找的是使用 NSDate 或 unix 时间戳或 iPad/iPod 系统时钟的预定事件中的某些内容。当您停止模拟器时,系统时钟的运行方式似乎与实际 iPad 上不同。
抱歉,我不知道这东西到底是如何工作的,但我也经历了一段痛苦的时间,遇到了类似的问题,它是基于系统计时器的。只需确保您使用 CCDirector 正确暂停所有内容,并确保您没有使用任何系统时钟来进行游戏计时
【讨论】:
以上是关于CCRepeatForever 不会在睡眠后立即恢复的主要内容,如果未能解决你的问题,请参考以下文章