1

我正在快速设计一个 SpriteKit 游戏,在我的游戏 SKScene 中,当我想暂停游戏时,我有一个方法被调用。它看起来像这样:

func pause() {
    view?.paused = true
}

游戏完美暂停,但在看似任意的时间(1 秒到 120 秒)之后,游戏只是取消暂停/恢复游戏,而无需调用我的 resume() 方法。我知道精灵套件会在应用程序激活时自动恢复游戏,但我在 applicationDidBecomeActive 中设置了一个断点,它没有被调用。有谁知道为什么会这样?

我知道我可以设置自己的 paused 属性并在每个更新循环中检查它,但如果我能让它工作,我更喜欢这个优雅的解决方案!

4

1 回答 1

0

问题是我对 ADBannerViewDelegate 的实现。这是罪魁祸首:

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    skView.paused = false
    println("bannerView:didFailToReceiveAdWithError called inside GameViewController class")
}

我通过将这些 println 调用放在每个具有 .paused = false 语句的方法中来解决了这个问题。大多数情况下,横幅加载良好,但每一次在蓝月亮中,它们都会失败并调用该方法。

于 2015-02-18T01:32:34.960 回答