流场寻路算法简单实现
Flow field pathfinding algorithm implementation
Introduction:
流场寻路算法主要用于解决地图中大量目标寻路问题,像传统的寻路算法(如A*)需要对每个移动目标进行单独的最优路径计算,这样对于大量目标同时寻路时,那么计算代价就会相当大,甚至导致游戏帧频率下降,画面卡顿,游戏体验大大降低。对于这个问题,流场寻路算法的一遍计算,在地图中生成流场,所有移动目标共用流场,从而就能轻松应对大量目标同时寻路问题了。当前实现的主要效果:
1.地图上随机分布200个移动目标;
2.移动目标可绕过障碍物,沿着地图的流场找到最短路径(最小代价的路径)到达目标点;
3.可通过点击地图上的非障碍物区域,实时的更改目标地点,并更新流场;
4.可通过按着鼠标左键在地图上拖拽,实时绘制障碍物,并动态更新流场;效果图:
蓝色点为终点,红色块为障碍物,蔚蓝色小点为移动目标,小点加线为流场方向指示箭头。这里的地图为均匀地图(即地图中每个网格的代价相同)1.初始地图效果:
2.动态设置障碍物效果