当主页button被按下时暂停Sprite Kit场景
我想知道如何当我按下主页button时暂停我的精灵套件场景。
我在这里find了几个答案,并尝试与这样的通知中心。
当我的场景加载时:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidEnterBackground) name:UIApplicationDidEnterBackgroundNotification object:nil];
然后,如果进入后台,则调用该方法:
- (void) applicationDidEnterBackground{ NSLog(@"Enter to background"); self.scene.view.paused =YES; }
这里的问题是,我得到的NSLog消息,所以applicationDidEnterBackground方法被正确调用。 但问题是,当我返回到应用程序我的应用程序不处于“暂停”模式。
所以我的暂停语句(self.scene.view.paused = YES;)不被调用?
如果我把确切的声明放在代码的其他地方,或者如果我用这个语句暂停button暂停工作就好了。
问题是什么? 为什么这不会与通知中心?
适用于iOS 8的Sprite工具包将在退出后台模式后自动恢复游戏。 它发生在applicationDidBecomeActive被调用之后。 此外,iOS 8的Sprite工具包在移动到背景时会自动暂停游戏。
更新:以下是进入/退出Xcode 5和6的背景模式时skView.paused的状态。
Xcode 6
部署目标7.0,7.1 **,8.0和8.1
applicationWillResignActive = NO applicationDidEnterBackground = YES applicationWillEnterForeground = YES applicationDidBecomeActive = YES
**当我在运行iOS 7.1的设备上运行时,状态都是NO
Xcode 5
部署目标7.0和7.1
applicationWillResignActive = NO applicationDidEnterBackground = NO applicationWillEnterForeground = NO applicationDidBecomeActive = NO
当你的应用程序进入后台时,可能已经太晚了。
相反,我们应该注册UIApplicationWillResignActiveNotification
通知,并在收到此通知时处理我们刚刚退出的代码。