A星寻路示例,游戏中最常用的寻路算法

易语言 2020-02-26 17:31:00

A星寻路示例,游戏中最常用的寻路算法

_启动窗口.宽度 = 到整数 (配置值_横) × 20 + 200 + 2
_启动窗口.高度 = 到整数 (配置值_纵) × 20 + 30
画板_二维画板.左边 = 1
画板_二维画板.顶边 = 1
画板_二维画板.宽度 = 到整数 (配置值_横) × 20
画板_二维画板.高度 = 到整数 (配置值_纵) × 20
分组框_操作.顶边 = -25
分组框_操作.左边 = 到整数 (配置值_横) × 20 + 2
分组框_操作.宽度 = 200
分组框_操作.高度 = 到整数 (配置值_纵) × 20 + 50
画板_二维画板.底图 = #二维地图底图
.计次循环首 (50, x)
.计次循环首 (50, y)
节点状态 [x] [y] = “□”
.计次循环尾 ()
.计次循环尾 ()
.计次循环首 (到整数 (配置值_纵), y)
.计次循环首 (到整数 (配置值_横), x)
.如果真 (y = 1 或 y = 到整数 (配置值_纵))
画板_底图.复制 (20, 0, 19, 19, 画板_二维画板, (x - 1) × 20, (y - 1) × 20, 1)
节点状态 [x] [y] = “■”
.如果真结束

.计次循环尾 ()
.计次循环尾 ()

在游戏设计中,地图可以划分为若干大小相同的方块区域(方格),这些方格就是寻路的基本单元。

在确定了寻路的开始点,结束点的情况下,假定每个方块都有一个F值,该值代表了在当前路线下选择走该方块的代价。
而A星寻路的思路很简单:从开始点,每走一步都选择代价最小的格子走,直到达到结束点。