Tune pathfinding and movements
This commit is contained in:
@ -199,20 +199,20 @@ func (m Movement) BaseCost() float64 {
|
||||
case Waypoint:
|
||||
return 0
|
||||
case TraverseNorth, TraverseSouth, TraverseEast, TraverseWest:
|
||||
return 1
|
||||
return 2
|
||||
case TraverseNorthWest, TraverseNorthEast, TraverseSouthWest, TraverseSouthEast:
|
||||
return 1.25
|
||||
return 2.5
|
||||
|
||||
case DropNorth, DropSouth, DropEast, DropWest:
|
||||
return 2
|
||||
return 4
|
||||
case AscendNorth, AscendSouth, AscendEast, AscendWest:
|
||||
return 2.25
|
||||
return 4
|
||||
case DescendLadderNorth, DescendLadderSouth, DescendLadderEast, DescendLadderWest:
|
||||
return 1.5
|
||||
case DescendLadder:
|
||||
return 1.2
|
||||
return 1
|
||||
case AscendLadder:
|
||||
return 1.5
|
||||
return 3
|
||||
default:
|
||||
panic(m)
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ type V3 struct {
|
||||
|
||||
func (v V3) Cost(other V3) float64 {
|
||||
x, y, z := v.X-other.X, v.Y-other.Y, v.Z-other.Z
|
||||
return float64(x*x+z*z) + 1.2*float64(y*y)
|
||||
return math.Sqrt(float64(x*x+z*z)) + math.Sqrt(1.2*float64(y*y))
|
||||
}
|
||||
|
||||
// Nav represents a navigation to a position.
|
||||
@ -119,8 +119,8 @@ func (t Tile) Inputs(pos, deltaPos, vel Point) Inputs {
|
||||
pos.X -= (0.55 * float64(x))
|
||||
pos.Z -= (0.55 * float64(z))
|
||||
} else {
|
||||
pos.X += (0.55 * float64(x))
|
||||
pos.Z += (0.55 * float64(z))
|
||||
pos.X += (0.42 * float64(x))
|
||||
pos.Z += (0.42 * float64(z))
|
||||
}
|
||||
|
||||
at = math.Atan2(-pos.X+float64(t.Pos.X)+0.5, -pos.Z+float64(t.Pos.Z)+0.5)
|
||||
|
Reference in New Issue
Block a user