【问题标题】:andengine Tower Defence game - Enemy<-Weapon interaction [duplicate]andengine塔防游戏-敌人<-武器交互[重复]
【发布时间】:2013-05-17 09:56:48
【问题描述】:

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

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

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

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

【问题讨论】:

  • 听起来你需要做更多的研究并缩小你想做的事情。这个问题太多了,不能放在一个问题上。你基本上是在问如何制作一个完整的游戏。做一些研究,看看开源示例等。
  • 我正在寻找可以通过 TMX/AStarPathFinding 实现的最近敌人发现算法。现在我知道如何通过 AStar 找到路径,但如何检测离武器最近的敌人?我无法通过谷歌找到这些信息,并向大家征求意见。谢谢。
  • 做一些最简单的事情,让你以最快的速度启动和运行,当事情变得混乱时进行重构,并在需要时进行优化。

标签: java android collision-detection andengine


【解决方案1】:

我已在 Stack Overflow 上回答了您的问题:andengine Tower Defence game - Enemy<-Weapon interaction

查看示例链接。我在这里没有足够的声誉来发布更多链接。

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

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

  2. 当你发射子弹时,也将一个身体附在它上面。让它成为一个传感器,这样它就不会反弹其他物体(除非你想要它)。让 Box2D 处理碰撞,您来处理后果!

浏览 AndEngine 示例,您想要的大部分内容都已经存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多