//------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ public float onEvaluateHCost(AStarPathFinder finder, Vec2<short> curPos, Vec2<short> endPos) { return (float)(Math.Abs(endPos.x - curPos.x) + Math.Abs(endPos.y - curPos.y)); }
//------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ public float onEvaluateHCost(AStarPathFinder finder, Vec2<short> curPos, Vec2<short> endPos) { int dx = Math.Abs(endPos.x - curPos.x); int dy = Math.Abs(endPos.y - curPos.y); return (float)Math.Pow(Math.Pow(dx, 2) + Math.Pow(dy, 2), 0.5); }
//------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ public float onEvaluateHCost(AStarPathFinder finder, Vec2<short> curPos, Vec2<short> endPos) { int d1 = Math.Abs(endPos.x - curPos.x); int d2 = Math.Abs(endPos.y - curPos.y); return Math.Max(d1, d2); }