2011-12-27 83 views
2

当我暂停游戏时,我遇到了严重的问题,因为我的performSelector:大多数延迟,所以它不会立即执行,但事情变糟,如果我暂停游戏,那么performSelector仍在调用...如何我应该克服这一点吗?如何暂停PerformSelector执行?

我知道在NSObject下有一个功能取消所有的请求,但那不是我真正想要的,因为我希望如果玩家恢复游戏,方法将继续执行。

回答

5

根据cocos2d Best Practices你不应该直接使用但使用cocos2d的调度来代替:

  • 尝试使用Cocoa的的NSTimer。而是使用cocos2d自己的调度程序。
  • 如果你使用cocos2d的调度程序,你将有:
    • 自动暂停/恢复。
    • 当CCLayer(CCScene,CCSprite,CCNode)进入阶段时,定时器将自动激活,当它离开舞台时,它会自动关闭。
    • 你的目标/选择器将与增量时间被称为

这里是你如何安排你的方法(假设自我是一个CCNode):

[self schedule: @selector(tick2:) interval:0.5]; 

不要忘记如果您想调用一次,请在-tick2:中取消调度。