我正在暂停使用包含SKScene的游戏玩法,并使用self.view?.presentScene()
呈现包含其上方菜单的另一个SKScene。
菜单场景具有透明背景,在转换过程中,我可以正确地看到下面的暂停游戏。但是当转换完成后,背景突然变黑,这告诉我游戏场景已经消失。
在显示菜单时,有没有办法保留暂停的游戏?
答案 0 :(得分:1)
SKView
一次只能显示一个场景。
但是,您仍然可以将游戏设计为将菜单封装为自己的“场景” - 它不能是SKScene
。将菜单设为节点,并将其添加到游戏场景中。 (如果您在显示菜单时需要在游戏场景中设置paused
,请将所有游戏内容放入游戏场景的子节点中,然后暂停。)您甚至可以对子菜单重复此过程。并且您可以使用Xcode场景编辑器来制作菜单 - 只需确保每个.sks
文件中的菜单内容都在一个子节点中,您可以在加载文件时将其拉出并重新进入实时场景。
您可以在Apple的Bananas示例代码项目中看到此示例。这是一个SceneKit(3D)游戏,但它使用SpriteKit场景作为其HUD和菜单,使用这种技术来交换不同的菜单内容。
答案 1 :(得分:0)
还有另一种方式。
菜单应该是添加了子节点的父节点。它不应该是它自己的场景。
如果要显示菜单,请暂停游戏并将菜单父节点添加到场景中。