2

我有一个 CADisplayLink 作为游戏的主要游戏循环,还有一个 NSTimer,它每十秒产生一次敌人。我用...

    -(void)togglePause{
displayLink.paused = !displayLink.paused;
if (displayLink.paused) {
    [self.view addSubview:pauseOverlay];
}else {
    [pauseOverlay removeFromSuperview];
}

...暂停游戏循环,但是即使在游戏暂停后,产生敌人的计时器仍将继续运行,如果我破坏计时器然后再制作另一个计时器,则无法仅利用暂停按钮并在10 秒后导致敌人永远不会生成?有一个简单的解决方案吗?

4

1 回答 1

3

抛弃 NSTimer,只需使用每次 CADisplayLink 触发时递增的计数器。一旦它到达n产生你的敌人并将计数器归零。如果用户暂停,当他们恢复时,计数器将与原来相同。

于 2012-06-30T21:57:09.210 回答