Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
 public bool Intersects(Circle circle)
 {
     if (Trig.PointDistance(Position, circle.Position) < Radius + circle.Radius) return true;
     return false;
 }