如何暂停PerformSelector执行?
问题描述:
当我暂停游戏时,我遇到了严重的问题,因为我的performSelector:
大多数延迟,所以它不会立即执行,但事情变糟,如果我暂停游戏,那么performSelector
仍在调用...如何我应该克服这一点吗?如何暂停PerformSelector执行?
我知道在NSObject
下有一个功能取消所有的请求,但那不是我真正想要的,因为我希望如果玩家恢复游戏,方法将继续执行。
答
根据cocos2d Best Practices你不应该直接使用但使用cocos2d的调度来代替:
- 尝试不使用Cocoa的的NSTimer。而是使用cocos2d自己的调度程序。
- 如果你使用cocos2d的调度程序,你将有:
- 自动暂停/恢复。
- 当CCLayer(CCScene,CCSprite,CCNode)进入阶段时,定时器将自动激活,当它离开舞台时,它会自动关闭。
- 你的目标/选择器将与增量时间被称为
这里是你如何安排你的方法(假设自我是一个CCNode
):
[self schedule: @selector(tick2:) interval:0.5];
不要忘记如果您想调用一次,请在-tick2:
中取消调度。