在SKScene上叠加SKScene

时间:2017-01-31 18:48:23

标签: swift xcode sprite-kit skscene

是的,我知道你在想什么......但这不是重复......

我有2个场景,gameScene和menuScene。我想将menuScene覆盖在gameScene上。我知道你不能同时呈现2个场景我看了解决方案,他们都建议将menuScene设置为SKNode而不是SKScene。

问题是我需要将我的menuScene设为SKScene,因为我使用的是SKCameraNode(在SKNode中不可用)......

任何建议?

先谢谢。

3 个答案:

答案 0 :(得分:3)

相信我,你不能。您应该针对这些情况采取的方法是考虑层次结构和角色(请参见下图)

所以,如果你现在有两个SKScene menuScene gameScene ),请不要扔掉你的 menuScene (你可以在其他情况下呈现它,比如游戏结束时你呈现另一个场景,你的gameOver场景或你的 menuScene ),你可以开发一个新的{{1作为 gameScene 的孩子,使用 gameScene 相机来处理新的 menuNode 。关于 gameScene ,您可以将游戏对象移动到节点子节点并暂停此节点,同时您的菜单正在运行..

enter image description here

答案 1 :(得分:1)

您可以创建没有SKCameraNode的老式相机。 Apple在这里解释了如何,你也可以看看如何创建相机'在许多2D游戏引擎中都有类似的解释:

(向下滚动一下相机内容)

https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Actions/Actions.html

(如果需要,你可以使用它转换为swift:https://objectivec2swift.com/#/home/converter/

不过,更好的解决方案可能只是稍微重新设计你的场景如何布局和与之互动:)

答案 2 :(得分:0)

让每个SKScene由不同的SKView呈现。

然后,您可以使用SKView做任何您想做的事情。 例如,您可以堆叠SKView,一个堆叠在另一个之上。

您可以通过将一个添加为另一个的子视图来堆叠SKView。 或者,您可以通过将它们全部添加为同一父视图的子视图来堆叠它们。