使用SpriteKit和GamePlayKit对地图区域进行约束和碰撞

时间:2017-01-21 02:31:24

标签: ios swift sprite-kit gameplay-kit

我使用SpriteKit和GamePlayKit构建2D游戏,其中单位在地图上移动。我想要实现的一件事是当陆地单位进入地图的特定区域时得到通知(点1)。第二件事是限制战舰只能在水上移动。

enter image description here

所以我最初的想法是在地图上创建一个SpriteNode(让它称之为A)和有趣的绿色区域另一个SpriteNode。因此,如果我向他们添加物理实体,我可以快速检查public class ADeserializer extends JsonDeserializer<A> { @Override public A deserialize(JsonParser p, DeserializationContext ctx) throws IOException { ObjectCodec codec = p.getCodec(); JsonNode node = codec.readTree(p); String field = node.get("field").asText(); int n = node.get("n").asInt(); A a = new A(); B b = new B(); b.setN(n); a.setField(field); a.setB(b); return a; } } 是否发生碰撞。但我不确定这对GPK实体系统是如何起作用的,GPK实体系统引入了它自己的物理学。任何人都有这方面的经验吗?我在Apple的文档中发现了类似的内容:https://developer.apple.com/reference/gameplaykit/gkpolygonobstacle

  

如果你已经在使用带有物理实体的节点来保持精灵   进入这些区域,您可以重复使用这些节点。

所以这似乎是一个可行的选择。

0 个答案:

没有答案