如何从执行中暂停PerformSelector?

时间:2011-12-27 12:03:15

标签: objective-c cocos2d-iphone

每当我暂停游戏时我都会遇到严重的问题,因为我的大部分performSelector:都有延迟,所以它不会立即执行,但如果我暂停游戏,那么事情会变得糟糕{{1仍然在呼唤......我该如何克服这个?

我知道performSelector下有一个函数可以取消所有请求,但这并不是我想要的,因为我希望该方法在玩家恢复游戏时继续执行。

1 个答案:

答案 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:中取消预定。