我的游戏框架基础构建篇(A* 寻路算法实现 )

一、控件功能描述

        本控件主要是用A*算法实现游戏地图中寻路算法的一个助手,帮助寻找二维地图上从一个点到另一个点的最优路线0

二、实现策略

         实现的策略我主要是参考的 http://www.cnblogs.com/technology/archive/2011/05/26/2058842.html

         算法理解如下:

         要寻找二维地图中两点的最短路径那么最理想的情况当然是直接走过去,但是往往地图中存在各种障碍物使我们不得不绕道而行,那么复杂多变的地图如何快速的找到路径呢。往往实现这种最优算法比较通用的算法是 动态规划贪心算法。而本文讲到的A* 我认为是一种贪心的过程。其贪心的公式为  :

         f = g + h 

         f 为最终决策的值, g 为  移动到当前点所需的消耗,h 为从当前点到终点的理想最短距离。

有了贪心的公式,下面我们就开始贪心的过程。从起点向各个方向移动,然后计算 f 值,然后 再从其中选择 f 值最小的再尝试移动,如果移动过程中出现移动到的点已经存在于原先移动路径中,那么判断当前移动到此点的 f 是否比原先要 更好(就是f 更小)。是则将原先的路径修复。这样一路寻找,直到 找到终点/所有的点都走玩 为止。 

三、实现思考

      无

四、实现源码

https://github.com/xzben/GameFrame/blob/master/client/GameClient/src/core/PathFindHelper.lua

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值