2013-05-17 48 views
-1

从性能角度来看最正确的是什么 - 敌人和武器之间的相互作用算法(这里的子弹可能更正确)?andengine塔防游戏 - 敌人< - 武器互动

每个子弹都应该通过“collidesWith”方法与全部敌人列表上的迭代检查碰撞吗?或子弹应该知道最近的敌人,只检查他们?

它如何用TMXMaps实现?也许我需要动态地将某种信息设置到TMXMap Tile属性中并使用它来操作?

这种游戏存在哪些最佳实践? IShape.collides是Bullet->敌人互动的正确选择吗?

+0

听起来像你需要做更多的研究和缩小你想要做的。这是一个问题太多的问题。你基本上在问如何制作整个游戏。做一些研究,看看开源示例等。 – MichaelHouse

+0

我正在寻找可以通过TMX/AStarPathFinding实现的最近的敌人发现算法。现在我知道如何通过AStar找到路径,但是如何检测武器最近的敌人?我无法通过谷歌找到这些信息,并向你询问所有的建议。谢谢。 – alexanoid

+3

做一些天真的事情,让事情变得更加糟糕,并在需要时进行优化,从而最快速地重构,重构。 – Tetrad

回答

1

我已经回答了你的堆栈溢出问题:andengine Tower Defence game - Enemy<-Weapon interaction

检查出来的链接的例子。我没有足够的声望发布更多链接。

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

  1. 你可以自己的属性添加到TMX地图 - 每个对象,组等,我建议对那些敌人的对象创建一个属性,因为我相信他们会在你的TMX地图。在您的代码中,将物理引擎主体附加到具有该属性的每个对象。

  2. 当你发射一颗子弹时,同样要附上一个身体。使它成为一个传感器,所以它不会反弹其他物体(除非你想要)。让Box2D处理碰撞并处理善后事宜!

通过AndEngine示例,您想要的大部分内容已经存在。