2011-12-27 86 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:中取消調度。