public FallDude() { SetSpriteFromFile("fallGuy"); fallRect = new Rect(new Vector2(20, 35), new Vector2(random.Next(1, Game1.Instance.GraphicsDevice.Viewport.Width), -50)); position = fallRect.position; myCDR = CollisionWorld.Instance.AddDelegate(CollisionWorld.CollisionGroupIdentifier.Faller, new CollisionDelegate(null, fallRect)); fallSpeed = random.Next(50, 100); }
public override bool Collides(Rect rect, CollideType detectMethod = CollideType.All) { Vector2 circleDistance = new Vector2((float)Math.Abs(this.position.X - rect.position.X), (float)Math.Abs(this.position.Y - rect.position.Y)); if (circleDistance.X > (rect.size.X / 2 + this.radius)) return false; if (circleDistance.Y > (rect.size.Y / 2 + this.radius)) return false; if (circleDistance.X <= (rect.size.X / 2)) return true; if (circleDistance.Y <= (rect.size.Y / 2)) return true; float cornerDistance_sq = (float)(Math.Pow((double)(circleDistance.X - rect.size.X / 2), 2) + Math.Pow((double)(circleDistance.Y - rect.size.Y / 2), 2)); return (cornerDistance_sq <= (float)Math.Pow(this.radius, 2)); }
public override bool Collides(Rect rect, CollideType detectMethod = CollideType.All) { if (rect.top >= this.y && rect.left <= this.x && rect.right >= this.x && rect.bottom <= this.y) return true; else return false; }
public abstract bool Collides(Rect rect, CollideType detectMethod = CollideType.All);
public override bool Collides(Rect rect, CollideType detectMethod = CollideType.All) { return rect.left <= this.right && rect.right >= this.left && rect.top <= this.bottom && rect.bottom >= this.top; }