SKView приостановлен автоматически возобновляется

Я быстро создаю игру SpriteKit, и в моем игровом процессе SKScene у меня есть метод, который вызывается, когда я хочу приостановить игру. Это выглядит так:

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

Игра отлично останавливается, но после, казалось бы, произвольного промежутка времени (от 1 до 120 секунд) игра просто останавливает / возобновляет игровой процесс, даже не вызывая мой метод resume(). Мне известно, что набор спрайтов автоматически возобновляет игровой процесс после того, как приложение становится активным, но я установил точку останова в applicationDidBecomeActive, и он не вызывается. Кто-нибудь знает, почему это происходит?

Я знаю, что мог бы установить свое собственное приостановленное свойство и проверять его каждый цикл обновления, но я бы предпочел это элегантное решение, если бы смог заставить его работать!

1 ответ

Проблема была в моей реализации ADBannerViewDelegate. Вот виновник:

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

Я решил эту проблему, поместив эти вызовы println в каждый метод с оператором.paused = false. Большую часть времени баннеры загружаются нормально, но каждый раз в голубой луне они терпят неудачу и вызывают этот метод.

Другие вопросы по тегам