【问题标题】:Prevent SKNode from unpausing automatically when app resumes防止 SKNode 在应用程序恢复时自动取消暂停
【发布时间】:2015-01-30 01:20:59
【问题描述】:

在我的游戏中,我有暂停和取消暂停包含游戏元素的SKNode 的功能。目前,系统会在按下 home 键时自动暂停,并在应用再次激活时取消暂停。

我想按照我自己的方式来做这件事。例如,当应用再次激活时,它应该显示暂停菜单,并保持暂停状态,直到用户手动取消暂停。

有没有办法覆盖这个系统行为?

【问题讨论】:

    标签: ios swift sprite-kit sknode


    【解决方案1】:

    您可以注册接收 UIApplicationDidEnterBackgroundNotification 或 UIApplicationWillEnterForegroundNotification 通知,并在通知选择器中触发暂停菜单。

    【讨论】:

      【解决方案2】:

      您必须在代码中的某处注册通知。有很多通知可供选择。这是应用程序从后台返回时的一个:

      override func viewDidLoad() {
          super.viewDidLoad()
          NSNotificationCenter.defaultCenter().addObserver(self, selector: "didBecomeActive:", name: UIApplicationDidBecomeActiveNotification, object: nil)
      }
      
      func didBecomeActive(test: NSNotification) {
          self.unpause()
      }
      

      请注意,addObserver 方法中的选择器是应用程序从后台返回时将调用的函数的名称。此外,didBecomeActive 方法需要NSNotification 类型的参数。

      【讨论】:

      • 我实际上已经在使用通知了。我能够正确运行这些功能,但当应用程序从后台变为活动状态时,系统仍会自动取消暂停。我想覆盖它。 (我能想到的最好的方法是等待片刻让它自动取消暂停,然后自己手动调用pause,但这不是一个好的解决方案。)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 2013-05-29
      • 2015-09-08
      • 2015-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多