public bool Intersects(Circle circle) { if (!Intersects(new Rectangle(new Vector2f(circle.Position.X - circle.Radius, circle.Position.Y - circle.Radius), new Vector2f(circle.Radius * 2, circle.Radius * 2)))) return false; if (Intersects(new Vector2f(circle.Position.X - circle.Radius, circle.Position.Y)) || Intersects(new Vector2f(circle.Position.X + circle.Radius, circle.Position.Y)) || Intersects(new Vector2f(circle.Position.X, circle.Position.Y - circle.Radius)) || Intersects(new Vector2f(circle.Position.X, circle.Position.Y + circle.Radius))) return true; if (Trig.PointDistance(Position, circle.Position) < circle.Radius || Trig.PointDistance(new Vector2f(X + Width, Y), circle.Position) < circle.Radius || Trig.PointDistance(new Vector2f(X, Y + Height), circle.Position) < circle.Radius || Trig.PointDistance(new Vector2f(X + Width, Y + Height), circle.Position) < circle.Radius) return true; return false; }
public bool Intersects(Circle circle) { if (Trig.PointDistance(Position, circle.Position) < Radius + circle.Radius) return true; return false; }