NSTimer和CADisplayLink发生冲突

时间:2012-06-30 20:07:27

标签: iphone timer game-loop

我有一个CADisplayLink作为我游戏的主要游戏环,以及一个每10秒生成一次敌人的NSTimer。我用......

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

...暂停游戏循环,但是即使在游戏暂停后,生成敌人的计时器仍将继续运行,如果我销毁计时器然后让另一个人不能只是利用暂停按钮而只是点击它在10秒之前熄灭导致敌人永远不会产卵? 有一个简单的解决方案吗?

1 个答案:

答案 0 :(得分:3)

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