A* 算法核心
f(n) = g(n) + h(n),其中 g 是已走过的实际代价,h 是启发式估计代价(曼哈顿距离或欧氏距离)。
// A* 核心伪代码
open_list = [start]
while open_list not empty:
current = node with lowest f in open_list
if current == goal: return path
for neighbor in neighbors(current):
g = current.g + cost(current, neighbor)
if g < neighbor.g:
neighbor.parent = current
neighbor.g = g
neighbor.f = g + h(neighbor, goal)
add neighbor to open_list
A* vs NavMesh
A* 适合动态网格(如塔防中实时改变地形),NavMesh 适合复杂三维地形的高效寻路。两者各有优势,可以组合使用。
