在Xcode SpriteKit中创建一个暂停菜单

时间:2017-08-28 00:42:49

标签: xcode swift3

我已经开发了一段时间的游戏,现在我正在尝试在暂停菜单中编码。我一直在浏览论坛和视频,但我仍然不明白如何在暂停菜单中实现。我在左上角有一个小暂停按钮,我想点击暂停。然后它覆盖一个菜单,例如更改项目的z位置,使它们现在可见。然后有简历和主菜单等按钮分别执行所谓的操作。我仍然很新编码所以任何帮助将不胜感激。我正在处理坠落的物体和移动的玩家,所以如果我需要将它们全部冻结,那么一旦恢复就解冻,这可能是我不确定的解决方案。谢谢:D

1 个答案:

答案 0 :(得分:0)

我已经尝试了各种方法来做到这一点,但没有找到适用于任何应用/游戏的令人满意的方法。其中很大程度上取决于你的游戏是如何运作的。作为一个起点,你可能需要看一下暂停SKScene - 这应该停止很多动画(但你可能需要做额外的工作)。

您可以添加某种模糊效果或叠加,然后添加取消暂停按钮,然后暂停场景。暂停时仍会检测到触摸,但暂停后您无法进行任何动画或更新。以下代码应该可以暂停场景。

let pauseAction = SKAction.run {
  self.isPaused = true
  debugPrint("Paused")
}
self.run(pauseAction)

在动作中暂停场景的原因是,如果直接设置isPaused,则不会处理任何addChild调用。 actualPaused只是一个bool变量,用于跟踪场景是否应暂停(如果父视图未暂停,场景也将不会暂停)。顺便说一句,您不需要使用操作将isPaused设置为false。

你可能也应该考虑实现

的观察者
NSNotification.Name.UIApplicationWillResignActive
NSNotification.Name.UIApplicationDidEnterBackground
NSNotification.Name.UIApplicationWillEnterForeground

因为您还需要知道您的游戏何时通过控制中心或主页按钮发送到后台。