1. if (object.x >= box.min_x && object.x < = box.max_x && object.y >= box.min_y && object.y < = box.max_y) then collision occurred
2. Use shapes in Graphics or Graphics2D and see if two intersect. Example:
public boolean collidesWith (Entity other)
{
if (other instanceof RectEntity) {
Rectangle him = new Rectangle();
me.setBounds((int) x, (int) y, sprite.getWidth(), sprite.getHeight());
him.setBounds((int) other.x, (int) other.y, other.sprite.getWidth(), other.sprite.getHeight());
return me.intersects(him);
}
else if (other instanceof CircleEntity) {
Ellipse2D him = new Ellipse2D.Double();
me.setBounds((int) x, (int) y, sprite.getWidth(), sprite.getHeight());
him.setFrame((int) other.x, (int) other.y, other.sprite.getWidth(), other.sprite.getHeight());
return him.intersects(me);
}
else if (other instanceof TriangleEntity) {
boolean collided = false;
Point2D p1 = ((TriangleEntity)other).p1;
Point2D p2 = ((TriangleEntity)other).p2;
Point2D p3 = ((TriangleEntity)other).p3;
collided = me.intersectsLine(p1.getX(), p1.getY(), p2.getX(), p2.getY()) ||
me.intersectsLine(p2.getX(), p2.getY(), p3.getX(), p3.getY()) ||
me.intersectsLine(p3.getX(), p3.getY(), p1.getX(), p1.getY());
return collided;
}
else {
System.out.println("Other Entity's shape is ambiguous!");
return false;
}
}