每当我暂停游戏时我都会遇到严重的问题,因为我的大部分performSelector:
都有延迟,所以它不会立即执行,但如果我暂停游戏,那么事情会变得糟糕{{1仍然在呼唤......我该如何克服这个?
我知道performSelector
下有一个函数可以取消所有请求,但这并不是我想要的,因为我希望该方法在玩家恢复游戏时继续执行。
答案 0 :(得分:5)
根据cocos2d Best Practices,您不应直接使用performSelector:afterDelay
,而应使用cocos2d调度程序:
- 尝试使用 NOT 来使用Cocoa的NSTimer。而是使用cocos2d自己的调度程序。
- 如果您使用cocos2d调度程序,您将拥有:
- 自动暂停/恢复。
- 当CCLayer(CCScene,CCSprite,CCNode)进入舞台时,计时器将自动激活,当它离开舞台时,它将自动停用。
- 将使用增量时间
调用您的目标/选择器
以下是您安排方法的方法(假设self为CCNode
):
[self schedule: @selector(tick2:) interval:0.5];
如果您想要拨打一次,请不要忘记在-tick2:
中取消预定。