示例#1
0
        public static bool CollidesWith(this BoundingRectangle r, BoundingCircle c, out Vector2 collisionPoint)
        {
            var closestX = Math.Max(r.X, Math.Min(c.X, r.X + r.Width));
            var closestY = Math.Max(r.Y, Math.Min(c.Y, r.Y + r.Height));

            collisionPoint.X = closestX;
            collisionPoint.Y = closestY;
            return(Math.Pow(c.Radius, 2) >= Math.Pow(closestX - c.X, 2) + Math.Pow(closestY - c.Y, 2));
        }
示例#2
0
 public static bool CollidesWith(this BoundingCircle c, Vector2 v)
 {
     return(v.CollidesWith(c));
 }
示例#3
0
 public static bool CollidesWith(this Vector2 v, BoundingCircle c)
 {
     return(Math.Pow(c.Radius, 2) >= Math.Pow(v.X - c.X, 2) + Math.Pow(v.Y - c.Y, 2));
 }
示例#4
0
 public static bool CollidesWith(this BoundingCircle c, BoundingRectangle r)
 {
     return(r.CollidesWith(c));
 }
示例#5
0
 public static bool CollidesWith(this BoundingCircle c, BoundingRectangle r, out Vector2 cp)
 {
     return(r.CollidesWith(c, out cp));
 }
示例#6
0
        public static bool CollidesWith(this BoundingRectangle r, BoundingCircle c)
        {
            Vector2 collisionPoint;

            return(CollidesWith(r, c, out collisionPoint));
        }