今天看了一篇文章《Introduction to the A* Algorithm》讲A*算法,讲的很通透,虽然篇幅较长,不过这个算法的来源和延伸都讲得比较透彻。所以强烈建议观看原网站跟着走一遍,原网站的动画演示十分直观。如果你不喜欢大段英文,那么这篇文章是对该博客的总结和转述,希望对各位看官有所帮助。表达地图首先我们要了解整个算法要处理一些什么,又会输出些什么。对于算法来说,它不会在意你的地图上有什么元素,它唯一在意的东西就是图的位置(节点)和连接(边界)。当你把图的顶点和边告诉它,它就会告诉你一条通往目标位置的“路”。当然,这个“路”只是一个抽象概念,实际上只是返回一个节点接着另一个节点的数组。所以本质上算法只会告诉你从原点到终点会经过哪些点,如何反应到游戏里那就是另外的事情了(比如通过门要开门、下水要游泳、走直线还是曲线,这些东西还得另外考虑)。是的,你的寻路图不一定都是规则网格状的,也可能是不规则的图,虽然对于算法来说都是一样的,但是游戏里的角色穿门而过那就是影响游戏质量的BUG了。算法接下来是算法时间。首先总结一下涉及到的算法:广度优先算法 -> 迪科斯彻算法(Dijk
walker
人生若只如初见
本站由
特别加持