Spritekit - держите игру на паузе, когда didBecomeActive

У меня есть система паузы с функцией и кнопкой, и она отлично работает, я знаю, что когда приложение входит в фоновый режим, оно автоматически приостанавливается, а когда оно возвращается, оно автоматически отключается, моя проблема в том, что я не знаю, как его приостановить. когда он снова становится активным.

func applicationWillResignActive(application: UIApplication) {

    NSNotificationCenter.defaultCenter().postNotificationName("Pause", object: nil) // tried here
}        


func applicationDidBecomeActive(application: UIApplication) {

    NSNotificationCenter.defaultCenter().postNotificationName("Pause", object: nil) // tried here
}

Я попробовал оба этих метода по отдельности, но игра продолжает работать, иногда она показывает мое меню паузы (слой над игровым процессом) и все еще работает в фоновом режиме. Итак, как правильно достичь этого?

1 ответ

В вашей сцене или представлении вы должны справиться с паузой, добавив в нее наблюдателя

    NSNotificationCenter.defaultCenter().addObserver(self,selector:Selector("pauseGame:",name:"Pause",object:nil)

Затем вы добавляете функцию для обработки этого

func pauseGame(notification:NSNotification)
{
    self.paused = true;
}

Теперь имейте в виду, что я обнаружил, что в iOS 8 есть ошибка, из-за которой CBApplicationDidBecomeActive может привести к нежелательным результатам, поэтому вам нужно переопределить это в своем классе SKView следующим образом:

class GameSceneView : SKView
{
    ...//Other Code
    func CBApplicationDidBecomeActive()
    {
    }
}
Другие вопросы по тегам