浅谈游戏中的A*寻路算法

本文详细介绍了A*寻路算法的基本原理和应用,通过简化搜索区域,将其转换为二维网格,利用F = G + H的评分系统进行路径选择。在游戏开发中,A*算法能有效地找到角色从起点到终点的最短路径,避开障碍物。通过不断迭代,选择F值最低的节点并更新其相邻节点,直至找到目标节点。
摘要由CSDN通过智能技术生成

作者:锐亚教育www.insideria.cn

本文为锐亚教育原创文章,转载请注明转载自锐亚教育

A*寻路

A*算法基本原理
A*(念作A星)算法对初学者来说的确有些难度。本文并不试图对这个话题作权威性的陈述,取而代之的是描述算法的原理,使你可以在进一步的阅读中理解其他相关的资料。下面我们就利用图文并茂的方式向大家展示它的基本原理。

简化搜索区域
  如图1所示,假设有人想从A点移动到一墙之隔的B点,如下图,绿色的是起点A,红色是终点B,蓝色方块是中间的墙。

这里写图片描述
图1

  首先注意到,搜索区域被我们划分成了方形网格。像这样,简化搜索区域,是寻路的第一步。这一方法把搜索区域简化成了一个二维数组。数组的每一个元素是网格的一个方块,方块被标记为可通过和不可通过两种。路径被描述为从A到B我们经过的方块的集合。一旦路径被找到,我们的人就从一个方格的中心走向另一个,直到到达目的地。

  这些中间点被称为“节点”。当你阅读其他的寻路资料时,你将经常会看到人们讨论节点。为什么不把他们描述为方格呢?因为有可能你的路径被分割成其他不是方格的结构。他们完全可以是矩形,六角形,或者其他任意形状。节点能够被放置在形状的任意位置,可以在中心,也可以沿着边界,又或者在其他任何地方。我们使用这种系统,归根结底是由于它最简单。

开始搜索
  正如我们处理图1中网格的方法,一旦搜索区域被转化为容易处理的节点,下一步就是去引导一次找到最短路径的搜索。在A*寻路算法中,我们通过从点A开始,检查相邻方格的方式,向外扩展直到找到目标。

  我们做如下操作开始搜索:
从点A开始,并且把它作为待处理点存入一个“开启列表”。开启列表就像一张购物清单。尽管现在列表里只有一个元素,但以后就会多起来。你的路径可能会通过它包含的方格,也可能不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值