寻路算法

Daniyal Azram |

我是游戏编程的新手,为了练习,我目前正在使用unity的2D功能重新制作2D游戏。所以我对一件事一点都不感到困惑,到目前为止,我游戏中的每个敌人都是愚蠢的(他们在预定的路径上移动),但是这个敌人(外星直升机)却飞走并跟随玩家到处走。我的问题是我应该实施任何寻路算法吗?我已经研究过A *,但是我想弄清楚A *是否会对我的发展有所帮助,因为玩家会移动并且敌人必须继续寻找最短的路径。我尝试为该AI编写代码,但没有障碍,但是我的游戏遇到障碍,所以我的代码运行得很完美,所以我想要高效的东西,那么您认为我应该实现A *还是其他算法呢?

阿尔玛斯

关于AI,如果您在游戏中遇到障碍,则需要实施某种寻路。注意,仅采取最短的块(节点)是不可行的,因为这种算法并不完整,即即使有一个也可能找不到路径。想象一下,a以后会b

(墙)(墙)(墙)

(免费)(免费)a(墙)b

(墙)(墙)(墙)

最短(最佳)路径是向左,因为向上,向下和向右都被阻止。但是,下一步,最好的方法是走近一点,因为它靠近了。这样a就会陷入循环。因此,是的,您是对的,您确实需要获取从a的路径b它通常以节点列表的形式出现。然后,您只需选择列表的head(也就是索引0处的元素)。

A *是您的理想选择。它是完整,高效的,甚至可以为您提供最短的路径。对于小型游戏而言,路径重新计算不应该成为问题。此外,如果在游戏过程中游戏网格中的障碍物是静态的,则可以预先计算路径并对其进行缓存。例如,从(x,y)到(x1,y1)的路径是[(a,b),(c,d)...]。因此,您可以将其存储在某种地图数据结构中,其中关键是两点-起点,目标和价值-路径。当然,这取决于您是否要将敌人归类为其他敌人的障碍和其他游戏因素

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章