创建一个划分的地图Swift

Aid*_*ser 6 image ios sprite-kit skspritenode swift

我正在使用Swift在SpriteKit中创建一个游戏.游戏要求玩家能够使用这样的地图在美国选择某个州. 在此输入图像描述

是否有一个程序或技术可用于绘制状态的轮廓,并将每个状态转换为地图中自己的唯一节点?例如,我希望能够点击Illinois节点,然后让我的应用程序认识到我已经使用了伊利诺伊州.我不知道从哪里开始并理解这不是一件容易的事.任何帮助,将不胜感激.

Luc*_*tti 2

我能想到的最简单的方法是创建多个图像(每个状态一个),最后将它们添加到场景中(每个图像都位于其自己的正确位置)。

为每个状态设置一个单独的精灵将使一些操作变得更容易,例如

  • 检测哪个状态被点击
  • 链接状态的颜色
  • 缩放状态
  • 将纹理应用于状态

切割图像

从您在问题中发布的输入图像开始,您可以使用具有遮罩功能的图像编辑工具(如Pixelmator)来提取每个状态的图像。

定位精灵

分离图像后,相同的图像编辑器可能会为您提供该状态在画布内的位置。您需要使用它们来重新定位画布内的状态。或者您可以使用 Xcode SpriteKit 场景编辑器手动定位图像。

  • 我认为这不会那么精确。想象一下,您有两个精灵,一个代表内华达州,另一个代表加利福尼亚州。看看这个[图片](https://www.dropbox.com/s/4rjltr1lqjhpw9m/nevada_california.png?dl=0),想象用户点击加利福尼亚州。绿色边框显示了内华达州精灵的边界……正如您所看到的,它与加利福尼亚州精灵重叠。您如何确定应选择哪个州。这就是为什么我提到从纹理创建的物理体(将与 SKPhysicsWorld 方法 - bodyAtPoint 一起使用:) (3认同)