Game Development Reference
In-Depth Information
r1.lowerLeft.y + r1.height > r2.lowerLeft.y)
return true ;
else
return false ;
}
public static boolean overlapCircleRectangle(Circle c, Rectangle r) {
float closestX = c.center.x;
float closestY = c.center.y;
if if(c.center.x < r.lowerLeft.x) {
closestX = r.lowerLeft.x;
}
else if if(c.center.x > r.lowerLeft.x + r.width) {
closestX = r.lowerLeft.x + r.width;
}
if if(c.center.y < r.lowerLeft.y) {
closestY = r.lowerLeft.y;
}
else if if(c.center.y > r.lowerLeft.y + r.height) {
closestY = r.lowerLeft.y + r.height;
}
return c.center.distSquared(closestX, closestY) < c.radius * c.radius;
}
public static boolean pointInCircle(Circle c, Vector2 p) {
return c.center.distSquared(p) < c.radius * c.radius;
}
public static boolean pointInCircle(Circle c, float x, float y) {
return c.center.distSquared(x, y) < c.radius * c.radius;
}
public static boolean pointInRectangle(Rectangle r, Vector2 p) {
return r.lowerLeft.x <= p.x && r.lowerLeft.x + r.width >= p.x &&
r.lowerLeft.y <= p.y && r.lowerLeft.y + r.height >= p.y;
}
public static boolean pointInRectangle(Rectangle r, float x, float y) {
return r.lowerLeft.x <= x && r.lowerLeft.x + r.width >= x &&
r.lowerLeft.y <= y && r.lowerLeft.y + r.height >= y;
}
}
Sweet! Now we have a fully functional 2D math library we can use for all your little physics
models and for collision detection. Now we are ready to look at the broad phase in a little
more detail.
Search WWH ::




Custom Search