public bool Intersects(Rectangle rectangle) { if (Intersects(new Line(new Vector2f(rectangle.X, rectangle.Y), new Vector2f(rectangle.X, rectangle.Y + rectangle.Height)))) return true; if (Intersects(new Line(new Vector2f(rectangle.X, rectangle.Y), new Vector2f(rectangle.X + rectangle.Width, rectangle.Y)))) return true; if (Intersects(new Line(new Vector2f(rectangle.X + rectangle.Width, rectangle.Y), new Vector2f(rectangle.X + rectangle.Width, rectangle.Y + rectangle.Height)))) return true; if (Intersects(new Line(new Vector2f(rectangle.X, rectangle.Y + rectangle.Height), new Vector2f(rectangle.X + rectangle.Width, rectangle.Y + rectangle.Height)))) return true; return false; }
public bool Intersects(Rectangle rect) { if (rect.X + rect.Width < X) return false; if (rect.Y + rect.Height < Y) return false; if (rect.X > X + Width) return false; if (rect.Y > Y + Height) return false; return true; }
public bool Intersects(Rectangle rect) { if (!(new Rectangle(new Vector2f(Position.X - Radius, Position.Y - Radius), new Vector2f(Radius * 2, Radius * 2))).Intersects(rect)) return false; if (rect.Intersects(new Vector2f(Position.X - Radius, Position.Y)) || rect.Intersects(new Vector2f(Position.X + Radius, Position.Y)) || rect.Intersects(new Vector2f(Position.X, Position.Y - Radius)) || rect.Intersects(new Vector2f(Position.X, Position.Y + Radius))) return true; if (Trig.PointDistance(rect.Position, Position) < Radius || Trig.PointDistance(new Vector2f(rect.X + rect.Width, rect.Y), Position) < Radius || Trig.PointDistance(new Vector2f(rect.X, rect.Y + rect.Height), Position) < Radius || Trig.PointDistance(new Vector2f(rect.X + rect.Width, rect.Y + rect.Height), Position) < Radius) return true; return false; }
public Zone(Rectangle rectangle) { ZoneRectangle = rectangle; }