【问题标题】:NSTimer and CADisplayLink conflictNSTimer 和 CADisplayLink 冲突
【发布时间】:2012-07-01 05:57:09
【问题描述】:

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

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

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

【问题讨论】:

  • 你必须检查 displayLink.paused 是否为真。请提供更多代码。
  • 我现在展示了完整的方法,但我不明白为什么这很重要

标签: iphone timer game-loop


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 2012-09-10
    • 2012-08-24
    • 2021-03-06
    相关资源
    最近更新 更多