1

从性能的角度来看,最正确的是什么 - 敌人和武器之间的交互算法(子弹在这里可能更正确)?

每个精灵都应该通过“collidesWith”方法检查碰撞,并在完整的敌人列表上进行迭代吗?还是子弹应该知道最近的敌人并只检查他们?

如何使用 TMXMaps 实现它?也许我需要在 TMXMap Tile 属性中动态设置某种信息并对其进行操作?

这种游戏有哪些最佳实践?IShape.collidesWith 是 Bullet->Enemy 交互的正确选择吗?

4

1 回答 1

0

解决此问题的最佳方法是使用 Physics Box2D 扩展。它将为您处理碰撞。使用固定步长物理引擎来提高性能。

  1. 您可以将自己的属性添加到 TMX 地图 - 每个对象、组等。我建议在敌人对象上创建一个属性,因为我相信它们会在您的 TMX 地图中。在您的代码中,将物理引擎主体附加到具有该属性的每个对象。看这个例子: http ://www.andengine.org/forums/tutorials/collision-objects-from-tmx-map-t3907.html

  2. 当你发射子弹时,也要附上一个身体。让它成为一个传感器,这样它就不会反弹其他物体(除非你想要它)。让 Box2D 处理碰撞,您来处理后果!示例:http ://www.andengine.org/forums/gles2/collision-events-t7140.html#p31300

浏览 AndEngine 示例,您想要的大部分内容已经存在:https ://github.com/nicolasgramlich/AndEngineExamples/tree/GLES2/src/org/andengine/examples

于 2013-05-20T03:08:04.540 回答