我想知道如何在按下主页按钮时暂停我的 sprite 套件场景。
我在这里找到了很少的答案,并尝试使用这样的通知中心。
当我的场景加载时:
[[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;) 没有被调用?
如果我在代码中的其他地方放置了确切的语句,或者如果我用这个语句制作了一个暂停按钮,那么 pause 就可以正常工作。
问题是什么?为什么这不适用于通知中心?
最佳答案
适用于 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
关于ios - 按下主页按钮时暂停 Sprite Kit 场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26812269/