【发布时间】:2015-08-18 07:38:39
【问题描述】:
我想使用多个 .sks 文件来存储一些复杂的 SKNode 层次结构,例如游戏菜单。我有一个带有移动物体的背景,我想在整个游戏中保留,所以呈现不同的 SKScene 并不能达到我想要的效果。我被限制在一个场景中,但我仍然想尽可能地将我的代码与艺术品分开,并且试图将所有内容压缩到一个 .sks 文件中会很快变得拥挤!
所以我想要多个 .sks 文件,每个文件存储一个不同的菜单:titleMenu、getReadyMenu、pauseMenu、gameOverMenu,每个菜单的所有元素都是空 SKNode 的后代。
我已设法加载文件,将 SKNode 缓存在局部变量中,并将其显示在屏幕上,但是当我单击菜单按钮时,当我在按钮外单击时,从不调用 touchesBegan 函数在菜单上,它是正常的响应者链功能。很费解。
我确信我的解决方案非常复杂,如果有人可以发布一个示例,从 .sks 文件中仅提取一个 SKNode(和子节点),而不呈现新场景,这会更简单。
那么,有人可以在 Swift 中发布一个这样的示例吗?
【问题讨论】:
-
你在哪里处理触摸?如果它在场景内部,请确保场景接收到触摸,即没有将
userInteractionEnabled设置为 YES 的下杆节点。如果您在节点内部处理触摸,请确保接收触摸的节点(userInteractionEnabled = YES也是如此)具有(至少)touchesBegan:withEvent的自定义实现。
标签: swift sprite-kit skscene sknode