游戏AI-6:A*路径寻找算法

路径寻找设计得不好会让游戏角色看起来很愚笨很不真实。A*算法可以提供有效的办法来解决路径寻找问题。它可以保证在任何起点及任何终点间找到最佳的路径,当然,前提是确实存在这种路径。如果起点和终点间没有障碍物,有明确的视线,那么用A*算法就大可不必了;改用既快速又有效的视线移动算法比较好。如果CPU功能不太强,A*也可能不是最佳替代方案。虽A*很有效,但仍然会耗用不少CPU运算能力,尤其是,如果你必须同时为许多游戏角色寻找路径的时候。

定义搜寻区域

需要以某种方式表示游戏世界,让搜寻算法能借此予以搜寻,并找出最佳路径。

这些节点并不直接对应任何可能的坦克位置,这样就需要太多节点了。我们必须把节点减少到可控制的数量内,这就是我们所说的必须简化搜寻区域。

A*搜寻算法必须知道节点是如何连接的,才能算出从任何节点到其他任何节点的路径。

开始搜寻

运用A*算法找出最短路径,同时避开障碍物。类深度优先算法

伪代码

把起始节点加进open list
while open list不为空
{
    当前节点=open list中成本最低的节点
    if 当前节点 = 目标节点 then
         路径完成
    else
        把当前节点移入 closed list
        检查当前节点的每个相邻节点
        for 每个相邻节点
            if 该节点不在open list中
               and 该节点不再closed list中
               and 该节点不是障碍物 then
                   将该节点移进open list并计算其成本
}

如图,砖块环境

记分

用路径得分(path score),找出起始砖块和目的地砖块间的最佳路径。

搜寻死路

任何两个指定点之间的有效路径,也可能不存在,我们如何得知?

地形成本

标准的A*算法是利用所经过的距离计算路径成本。然而,有时候还需要考虑其他因素,如较短的路径上有沼泽地,有如下地形。

这时需要对成本公式稍微做些修改。

影响力对应

地形成本通常是游戏设计者直接编进游戏世界里。影响力对应(influence mapping)是一种改变A*节点成本的方法,依据游戏里发生的情节而定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值