从性能的角度来看,最正确的是什么 - 敌人和武器之间的互动算法(这里的子弹可能更正确)?
每个sprite是否应该通过“collidesWith”方法检查每个子弹的冲突,并在完整的敌人列表中进行迭代? 或者子弹应该知道最近的敌人并只检查它们?
如何使用TMXMaps实现?也许我需要动态地将某种信息设置到TMXMap Tile属性中并与之一起运行?
这种游戏有哪些最佳实践? IShape.collides是否适合Bullet-> Enemy互动?
答案 0 :(得分:0)
解决这个问题的最佳方法是使用Physics Box2D扩展。它会为你处理碰撞。使用固定步进物理引擎来提高性能。
您可以将自己的属性添加到TMX地图 - 每个对象,组等。我建议在敌人的对象上创建属性,因为我相信它们将在您的TMX地图中。在您的代码中,将物理引擎主体附加到具有该属性的每个对象。看看这个例子: http://www.andengine.org/forums/tutorials/collision-objects-from-tmx-map-t3907.html
当你发射子弹时,也要将一个物体附在它上面。使它成为传感器,因此它不会反弹其他物体(除非你想要它)。让Box2D处理碰撞并处理后果!示例:http://www.andengine.org/forums/gles2/collision-events-t7140.html#p31300
通过AndEngine示例,您想要的大部分内容已经存在:https://github.com/nicolasgramlich/AndEngineExamples/tree/GLES2/src/org/andengine/examples