一种在没有光线投射和多个目标的情况下在3D中使用寻路的方法

时间:2012-10-04 20:37:18

标签: c++ algorithm graphics directx path-finding

我目前正在使用c ++在DirectX引擎中制作游戏。我正在使用寻路来指导一队士兵到一个特定的地方。问题是我使用光线投射来查看我的路径中是否没有任何东西,这会降低游戏的速度。有更好的方法进行寻路吗?

我的军队搬迁也有问题。现在我用士兵的平均位置作为起点,这意味着所有的士兵在移动到终点之前需要先去那里。有没有办法让他们没有到达起点就到达终点?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

你有没有像A-Star这样的东西?通过节点导航,或某种地图的二维数组表示?写得好,它可能更快,也更容易做工作(多线程)。

如果你有一个士兵,谁在位置A,需要到达B. 只是计算从C(avrage位置)到B的路径。从a到b获取方向并进行某种插值。 (没有这样做,或尝试过,但它可能很好地解决了!)

答案 1 :(得分:0)

您在进行光线投射时是否对每个对象进行了测试?

当你拥有许多物品和士兵时,这可能会非常昂贵。 一个常见的解决方案是将您的世界划分为方形网格单元格,并将每个对象放入该网格的对象列表中。

然后你绘制一条从士兵到目的地的虚线,并检查每个单元格你需要对哪些对象进行测试。这样,您将仅评估靠近直线路径的对象并忽略所有其他对象。