流场寻路算法学习及实现

本文介绍了流场寻路算法在解决大量目标寻路问题中的应用,避免了传统A*算法对每个目标单独计算的高成本。通过一次计算生成的流场,所有移动目标共享,有效应对大规模寻路。内容包括算法实现的主要效果、动态障碍物处理和OpenGl使用中遇到的Bug。同时,提到了Dijkstra算法在生成最短路径中的作用,以及算法的实现步骤和参考资料。
摘要由CSDN通过智能技术生成

流场寻路算法简单实现

Flow field pathfinding algorithm implementation

  • Introduction:
    流场寻路算法主要用于解决地图中大量目标寻路问题,像传统的寻路算法(如A*)需要对每个移动目标进行单独的最优路径计算,这样对于大量目标同时寻路时,那么计算代价就会相当大,甚至导致游戏帧频率下降,画面卡顿,游戏体验大大降低。对于这个问题,流场寻路算法的一遍计算,在地图中生成流场,所有移动目标共用流场,从而就能轻松应对大量目标同时寻路问题了。

  • 当前实现的主要效果:
    1.地图上随机分布200个移动目标;
    2.移动目标可绕过障碍物,沿着地图的流场找到最短路径(最小代价的路径)到达目标点;
    3.可通过点击地图上的非障碍物区域,实时的更改目标地点,并更新流场;
    4.可通过按着鼠标左键在地图上拖拽,实时绘制障碍物,并动态更新流场;

  • 效果图:
    蓝色点为终点,红色块为障碍物,蔚蓝色小点为移动目标,小点加线为流场方向指示箭头。这里的地图为均匀地图(即地图中每个网格的代价相同)

    1.初始地图效果:
    这里写图片描述

    2.动态设置障碍物效果

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值