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