0

在一个由 cocos2D 驱动的 iphone 应用程序中,我使用 CCRepeatForever 动作让后台通过。当我调试应用程序(通过 XCode 构建和运行)时,它工作正常。即使我退出应用程序并恢复它,也没问题。

然而,当我将应用程序捆绑到 .ipa 中进行 beta 测试时,我遇到了一个奇怪的问题:
在启动时,背景很好地通过了。
但是,如果我退出应用程序并稍后恢复游戏,应用程序会将我带回到我离开它的地方,除了移动的背景之外一切正常。一段时间后(与我退出应用程序后的时间大致成正比),背景会再次开始移动,而无需我做任何特别的事情。
这是一个已知问题吗?
谢谢

4

1 回答 1

0

哦,我不久前遇到了一个非常相似的问题。我会暂停游戏,然后在恢复时什么都不会发生,然后它会突然跳起来,我会被怪物包围。

我不能准确地告诉你在哪里看,但这就是我正在做的事情:

我有一个计时器,它没有使用 (ccTime)dt 来计算时间,而是使用 NSDate 时间戳。问题是我有一个事件要根据日期安排在某个时间,但是使用 dt 来确定何时触发事件。

据我所知,暂停游戏就是暂停预定的事件,所以“dt”根本没有增加,但系统时钟一直在滴答作响,所以最终发生的事情是我会暂停 10 秒,系统时钟滴答作响并被触发,但“dt”正在添加到浮点 timeElapsed 中,直到赶上,什么也没发生。

您可能需要寻找的是使用 NSDate 或 unix 时间戳或 iPad/iPod 系统时钟的预定事件中的内容。当您停止模拟器时,系统时钟的运行方式似乎与实际 iPad 上的运行方式不同。

抱歉,我不知道这些东西到底是如何工作的,但我也经历了一个类似问题的痛苦时间,它是基于系统计时器的。只需确保您使用 CCDirector 正确暂停一切,并确保您没有使用任何系统时钟来进行游戏计时

于 2013-05-31T01:24:55.177 回答