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()
{
}
}