对于小型 2D 游戏中的寻路,我使用 A* 算法,现在基于简单的欧几里德距离启发式。我的游戏世界被表示为一个单元格,要么被障碍物占据,要么没有。必须使用 A* 计算路径的角色可以向任何方向移动(如果没有被阻挡),而不仅仅是 N/E/S/W。
好的,这样基本上可以正常工作。现在我需要向 A* 启发式函数添加另一个参数,即与每个网格单元相关的成本值。这个成本值越高,我们的角色就越应该尽量避开那个单元格。
但是,我不能将启发式函数更改为仅使用每个网格单元的这个成本值,因为单元到 A* 目标位置的距离仍然很重要。角色应尽量避开任何高成本单元,但同时也不能离目标位置太远。因此,我需要在单元格的距离与其成本值之间进行某种“权衡”。
理想情况下,我想找到一个解决方案,使我能够轻松调整/优化单元格距离与其成本值之间的这种关系,以便我可以微调启发式。
任何想法如何实现这一目标?