0
我最近在Lua中實現了A *尋路,但是由於在成本中使用曼哈頓方法,我遇到了不好的路徑。A *在Lua尋找路徑
我想知道是否有計算節點的成本的任何其他方法。以下是我目前正在使用:
function CalcG(A,B)
if type(A) == "table" then
A = A.Pos
end
if type(B) == "table" then
B = B.Pos
end
return (A-B).Magnitude
end
function CalcH(A,B)
if type(A) == "table" then
A = A.Pos
end
if type(B) == "table" then
B = B.Pos
end
return math.abs(A.X - B.X) + math.abs(A.Z - B.Z)
end
function GetCost(A,B,C)
return CalcG(A,B) + CalcH(B,C)
end
,並計算成本:
GetCost(Start,CurrentNode,End)
如果有人能指導我走向更美好的啓發式方法,我將不勝感激。
使用啓發式曼哈頓不應導致這條道路。我想你可能還有其他問題。 – WuTangTan