2014-09-26 4 views
1

У меня есть меню паузы в моей игре, которое я хочу переключить, когда я нажму на свою домашнюю кнопку. он работает, когда я нахожусь в моей игре, однако, когда я ударил по своей домашней кнопке, меню появляется, но игра не остановится.pausing spritekit game using appdelegate in ios8

Когда я перезапущу приложение, меню все еще существует, но игра не задерживается. Кажется, что spritekit автоматически приостанавливает и перезапускает игру самостоятельно, когда вы уходите и входите в приложение. Когда я нахожусь в приложении, я полностью контролирую его. Но когда я ухожу/вхожу в приложение, он ведет себя так, как ему нравится.

Любые предложения?

func applicationWillResignActive(application: UIApplication!) { 
    // get the root viewcontroller 
    // toggle my pausemenu method. pause menu sets skview.paused = true 
} 

ответ

1

Послать NSNotification в GameSceneViewController, чтобы приостановить SKScene:

AppDelegate:

- (void)applicationWillResignActive:(UIApplication *)application 
{  
    // Pause sprite kit scene 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"PauseGameScene" object:self]; 
} 

GameSceneViewController:

- (void)viewDidLoad { 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(pauseGameScene) 
               name:@"PauseGameScene" 
               object:nil]; 
} 

- (void)pauseGameScene { 
    if (self.skView.scene) { 
     self.skView.paused = self.skView.scene.paused = YES; 
    } 
} 
+0

вы пробовали этот код? он не работает. игра снова перезапустится, когда вернется в приложение. – hamobi

+0

Если ваша игра перезапустится, когда вернется в приложение, проблема в вашей архитектуре проекта определенно не в коде, который я опубликовал. Он работает отлично. –

+0

ive попробовал сделать базовый проект spritekit и использовать этот код. он не работает с текущим xcode/ios. вы на старой версии? – hamobi