我正在使用SpriteKit构建塔防游戏,我对此比较陌生。 我的地图基本上由可触摸的平铺节点组成。一旦用户触摸到节点,我就可以在该节点上放置一个塔(到目前为止,这部分工作)。我想要继续前进的是,而不是直接放置一个塔,我想要一个圆形菜单弹出瓷砖节点,让用户选择他们希望放置在这个瓷砖节点中的塔。如果用户点击圆形菜单以外的任何地方,菜单应该消失。
这样的事情:
我想知道最好的办法是什么。我有两种可能的解决方案,但它们看起来很糟糕:
1)创建一个由菜单和4个按钮组成的自定义UIView,然后将其添加到我的场景中(但是如何从场景中检测此菜单中的按钮?)
2)扩展SKShapeNode以创建一个圆并在圆周周围添加4个SpriteNode,然后验证触摸位置是否对应于4个SpriteNode位置之一。
有关如何最好地解决此问题的任何建议/代码示例?
答案 0 :(得分:4)
我建议您为tile节点创建一个单独的类(继承SKSpriteNode)并在其中添加功能。
对于菜单的方法,我认为沿着第(2)点的方向会更好。通过子类化tile节点,您可以使tile自己检测选择。
关闭菜单时,点击场景可以触发NSNotification,tileNode可以在扩展时成为监听器。