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