fixed rect intersection test
This commit is contained in:
parent
b350b001da
commit
5bb8a09165
@ -86,19 +86,19 @@ func RectIntersection(r Rect2d, p Point2d, v Vector2d) (bool, bool, Point2d) {
|
|||||||
inside = true
|
inside = true
|
||||||
return collision, inside, Point2d{X: 0, Y: 0}
|
return collision, inside, Point2d{X: 0, Y: 0}
|
||||||
} else {
|
} else {
|
||||||
wall_left, col1 := Intersection(p, r.A, v, Vector2d{X: 0, Y: r.B.Y})
|
wall_left, col1 := Intersection(p, r.A, v, Vector2d{X: 0, Y: r.B.Y - r.A.Y})
|
||||||
if wall_left {
|
if wall_left {
|
||||||
return wall_left, inside, col1
|
return wall_left, inside, col1
|
||||||
}
|
}
|
||||||
wall_top, col2 := Intersection(p, r.A, v, Vector2d{X: r.B.X, Y: 0})
|
wall_top, col2 := Intersection(p, r.A, v, Vector2d{X: r.B.X - r.A.X, Y: 0})
|
||||||
if wall_top {
|
if wall_top {
|
||||||
return wall_top, inside, col2
|
return wall_top, inside, col2
|
||||||
}
|
}
|
||||||
wall_right, col3 := Intersection(p, r.B, v, Vector2d{X: 0, Y: -r.B.Y})
|
wall_right, col3 := Intersection(p, r.B, v, Vector2d{X: 0, Y: -r.B.Y + r.A.Y})
|
||||||
if wall_right {
|
if wall_right {
|
||||||
return wall_right, inside, col3
|
return wall_right, inside, col3
|
||||||
}
|
}
|
||||||
wall_bottom, col4 := Intersection(p, r.B, v, Vector2d{X: -r.B.X, Y: 0})
|
wall_bottom, col4 := Intersection(p, r.B, v, Vector2d{X: -r.B.X + r.A.X, Y: 0})
|
||||||
if wall_bottom {
|
if wall_bottom {
|
||||||
return wall_bottom, inside, col4
|
return wall_bottom, inside, col4
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user