暂停后如何恢复performSelector方法?

时间:2012-06-14 02:32:40

标签: iphone cocos2d-iphone resume

我已经看了几天堆栈溢出,并没有看到我的问题的答案。我的主要游戏场景中有几种方法由

调用
[self performSelector:@selector(MethodName) withObject:nil afterDelay:.1];

当我离开游戏并回来时,看起来我的所有方法都会立即运行。我认为这是因为延迟时间是在后台计算,但我不明白如何在cocos2d中纠正这个问题。我以为我不需要用cocos2d中的暂停/恢复功能处理NSTimers?我在这里错过了哪些简单的信息?

2 个答案:

答案 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];