3

我目前正在用 c++ 在 DirectX 引擎中制作游戏。我正在使用寻路将一支士兵军队引导到特定位置。问题是我使用光线投射来查看我的路径是否没有任何东西,这会减慢游戏的速度。有没有更好的寻路方法?

我的军队调动也有问题。现在我使用士兵位置的平均值作为起点,这意味着所有士兵都需要先到达那里,然后才能到达终点。有没有办法让他们在不去起点的情况下到达终点?

谢谢您的帮助。

4

2 回答 2

1

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

如果你有一个士兵,他在位置 A,并且需要到达 B。只需计算从 C(平均位置)到 B 的路径。获取从 a 到 b 的方向并进行某种插值。(还没有这样做,或尝试过,但它可能会很好地工作!)

于 2012-10-04T21:50:11.613 回答
0

Are you hit-testing every object when you are raycasting?

That can be very expensive when you have many objects and soldiers. A common solution is to divide your world into square grid cells, and put each object in a list of objects for that grid.

Then you draw an imaginary line from the soldier to the destination and check each cell what objects you need to hit test against. This way you will evaluate only objects close to the straight path and ignore all others.

于 2012-10-04T21:58:51.257 回答