我正在设计一个快速的SpriteKit游戏,在我的游戏玩法SKScene中,当我想暂停游戏时,我有一个方法。它看起来像这样:
func pause() {
view?.paused = true
}
游戏暂停,但在看似任意的时间(1秒到120秒)之后,游戏只是取消暂停/恢复游戏,而不会调用我的resume()方法。我知道精灵套件会在应用程序变为活动状态时自动恢复游戏,但我在applicationDidBecomeActive中设置了一个断点,并且没有调用它。有谁知道为什么会这样?
我知道我可以设置我自己的暂停属性并检查每个更新循环,但我更喜欢这个优雅的解决方案,如果我能让它工作!
答案 0 :(得分:0)
问题是我实施的ADBannerViewDelegate。这是罪魁祸首:
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
skView.paused = false
println("bannerView:didFailToReceiveAdWithError called inside GameViewController class")
}
我通过将那些println调用放在每个具有.paused = false语句的方法中来解决问题。大多数情况下,横幅加载很好,但每次在蓝色的月亮中它们都会失败并称之为该方法。