如果您是游戏开发人员,您可能一直希望将A *实现为角色(或敌人)寻路。 我知道几年前我做过,但当时我的编程水平与当前的文章存在问题。 我想把它写成一个简单的介绍,带有一个明确的源代码示例到A *寻路,所以任何人都可以轻松拿起并在游戏中使用它。
F = G + H
A *的一个重要方面是f = g + h。 f,g和h变量在我们的Node类中,并在每次创建新节点时计算。 我很快就会了解这些变量的含义。
F是节点的总成本。
G是当前节点和起始节点之间的距离。
H是启发式 - 从当前节点到末端节点的估计距离。
让我们来看一个快速图形来帮助说明这一点。
真棒! 假设node(0)是我们的起始位置,node(19)是我们的结束位置。 我们还说我们当前的节点位于红色方块节点(4)。
G
G是当前节点和起始节点之间的距离。
如果我们倒数,我们可以看到node(4)距离我们的起始节点有4个空格。
我们还可以说G比我们的父节点(node(3))多1。 因此在节点(4)的情况下,currentNode.g = 4。
H
H是启发式 - 从当前节点到末端节点的估计距离。
所以让我们计算距离。 如果我们看一下,我们会看到,如果我们超