Я прочитал все, что мог найти по этой теме, и все еще не могу разобраться в моей проблеме. Я попытался приостановить игру в каждой области appdelegate
func applicationWillResignActive(application: UIApplication!) {
NSNotificationCenter.defaultCenter().postNotificationName("pauseGameScene", object: self)
}
func applicationDidEnterBackground(application: UIApplication!) {
NSNotificationCenter.defaultCenter().postNotificationName("pauseGameScene", object: self)
}
func applicationWillEnterForeground(application: UIApplication!) {
NSNotificationCenter.defaultCenter().postNotificationName("pauseGameScene", object: self)
}
func applicationDidBecomeActive(application: UIApplication!) {
NSNotificationCenter.defaultCenter().postNotificationName("pauseGameScene", object: self)
}
В моем контроллере:
override func viewDidLoad() {
NSNotificationCenter.defaultCenter().addObserver(self, selector: "pauseGame:", name: "pauseGameScene", object: nil)
}
func pauseGame(){
self.skView.paused = true
self.skView.scene!.paused = true
}
Я знаю, что pauseGame работает, потому что если я переключу его с помощью кнопки на моей сцене, это остановит игру. Даже если я приостановил свой просмотр и сцену сразу после их загрузки в контроллер. Игра не будет приостановлена при запуске. Легко приостановить игру, когда я играю в игру. но по какой-то причине, когда я выхожу и возобновляю приложение, игра будет отключена.
Я замечаю, что если я получаю хакерство и использую какую-то задержку, я могу заставить его работать. но, очевидно, это очень глупо. Мне просто нужно знать, где игра сама себя разочаровывает!
func delay(delay:Double, closure:()->()) {
dispatch_after(
dispatch_time(
DISPATCH_TIME_NOW,
Int64(delay * Double(NSEC_PER_SEC))
),
dispatch_get_main_queue(), closure)
}
func pauseGame(sender: UIButton!){
delay(2) {
println("blah")
self.skView.paused = true
self.skView.scene!.paused = true
}
}