建立塔防游戏。如何在SpriteKit的tile节点上添加带有塔选项的循环菜单?

时间:2014-01-24 08:50:30

标签: ios sprite sprite-kit

我正在使用SpriteKit构建塔防游戏,我对此比较陌生。 我的地图基本上由可触摸的平铺节点组成。一旦用户触摸到节点,我就可以在该节点上放置一个塔(到目前为止,这部分工作)。我想要继续前进的是,而不是直接放置一个塔,我想要一个圆形菜单弹出瓷砖节点,让用户选择他们希望放置在这个瓷砖节点中的塔。如果用户点击圆形菜单以外的任何地方,菜单应该消失。

这样的事情:

http://imgur.com/QvCsM8Q

我想知道最好的办法是什么。我有两种可能的解决方案,但它们看起来很糟糕:

1)创建一个由菜单和4个按钮组成的自定义UIView,然后将其添加到我的场景中(但是如何从场景中检测此菜单中的按钮?)

2)扩展SKShapeNode以创建一个圆并在圆周周围添加4个SpriteNode,然后验证触摸位置是否对应于4个SpriteNode位置之一。

有关如何最好地解决此问题的任何建议/代码示例?

1 个答案:

答案 0 :(得分:4)

我建议您为tile节点创建一个单独的类(继承SKSpriteNode)并在其中添加功能。

对于菜单的方法,我认为沿着第(2)点的方向会更好。通过子类化tile节点,您可以使tile自己检测选择。

  1. 使用SKShapeNode或带有圆形图像的SKSpriteNode使用动画展开磁贴。
  2. 将四个按钮放在展开的部分上。
  3. 在tile节点类中实现选择的触摸。
  4. 关闭菜单时,点击场景可以触发NSNotification,tileNode可以在扩展时成为监听器。