приостановить игру, когда WillResignActive

У меня есть несколько спрайтенодов с SKAction(); Они дети sknode с именем world

Если я нажму кнопку паузы в игре, его анимация спиренодов

func pause(){
    if(isGamePaused)
        isGamePaused = false;
        world.paused = false;
    } else {
        isGamePaused = true;
        world.paused = true;
    }
}

Но я не могу поставить игру на паузу, когда она идет в фоновом режиме.

 NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("goBG:"), name: UIApplicationWillResignActiveNotification, object: nil);

func goBG(sender: AnyObject){
    self.isGamePaused = true;
    self.world.paused = true;

    println("bg"); // called
    println(world.paused);// return true
}

person Community    schedule 21.01.2015    source источник
comment
SpriteKit автоматически приостанавливается, когда ваше приложение переходит в фоновый режим, и возобновляет работу, когда приложение активно.   -  person 0x141E    schedule 21.01.2015


Ответы (2)


Вы можете либо попытаться наблюдать UIApplicationDidEnterBackgroundNotification вместо уведомления UIApplicationWillResignActiveNotification, либо вызвать функцию в методе AppDelegate applicationDidEnterBackground, где вы приостановите игру.

person Christian    schedule 21.01.2015
comment
Можете ли вы привести пример? - person ; 21.01.2015
comment
UIApplicationDidEnterBackgroundNotification — не приостанавливать SKAction - person ; 21.01.2015

если кому еще интересно. Здесь есть решение этой проблемы:

SpriteKit Autoresumes и автоматические паузы iOS8

person hamobi    schedule 28.01.2015