我已经看了几天堆栈溢出,并没有看到我的问题的答案。我的主要游戏场景中有几种方法由
调用[self performSelector:@selector(MethodName) withObject:nil afterDelay:.1];
当我离开游戏并回来时,看起来我的所有方法都会立即运行。我认为这是因为延迟时间是在后台计算,但我不明白如何在cocos2d中纠正这个问题。我以为我不需要用cocos2d中的暂停/恢复功能处理NSTimers?我在这里错过了哪些简单的信息?
答案 0 :(得分:1)
您可以使用cocos-2d调度程序来解决此问题。请参阅以下代码:
[className schedule: @selector(selectorName) interval:2];
当您使用:[[CCDirector sharedDirector] pause];
暂停游戏时,此计时器将暂停。当您使用以下内容恢复游戏时:[[CCDirector sharedDirector] resume];
它也会恢复。
答案 1 :(得分:0)
您还可以创建一系列操作以进行延迟的单一方法调用。
id delay = [CCDelayTime actionWithDuration: yourDuration];
id call = [CCCallFunc actionWithTarget:yourTarget selector:yourSelector];
id sequence = [CCSequence methodOne: delay two: call];
[someNode runAction:sequence];