繁体   English   中英

按下主页按钮时暂停Sprite Kit场景

[英]Pause Sprite Kit scene when home button is pressed

我想知道如何在按下主页按钮时暂停我的精灵套件场景。

我在这里找到了一些答案并尝试了这样的通知中心。

我的场景加载时:

 [[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;)没有被调用?

如果我在代码中的其他地方放置确切的语句,或者如果我使用此语句创建一个暂停按钮,则暂停工作正常。

问题是什么? 为什么这不适用于通知中心?

用于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通知并处理我们的前退出代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM