问题: 猫要找到骨头?
地图分块
将地图分成一块块的形状,不是以像素为单位,而是以 Tile
为单位。
OpenList 和 ClosedList
OpenList
: 放置当前需要考虑的可能组成通向最短路径的方块集合。
ClosedList
: 放置当前不在考虑组成通向最短路径的方块集合。
每个方块都有个权重值,作为寻迹的依据。
G 和 H
A
和 B
两点间最短距离:
G
: 从 A
点到当前方块的路径权重。
H
: 从当前方块到 B
的路径权重。
F
= G
+ H
左上角的数字:F
、左下角的数字:G
、右下角的数字:H
选择 F 值最小的
每次计算出当前位置相邻的方块的 F
值之后(排除不可通过的方块)选择 F
值最小的, 放入 ClosedList
集合, 然后从选择的方块为出发点,再选择下一个最优解的方块,一直达到目标地点。
[1] introduction-to-a-pathfinding