コード例 #1
0
        public override bool IntersectCircle(CircleCollider circle)
        {
            var rad   = this.Radius + circle.Radius;
            var pos   = this.Parent.Origin() + this.Parent.Position;
            var distX = pos.X - pos.X;
            var distY = pos.Y - pos.Y;

            return(distX * distX + distY * distY <= rad * rad);
        }
コード例 #2
0
        public override bool IntersectCircle(CircleCollider circle)
        {
            var     area = new Rectangle((int)this.Parent.Position.X, (int)this.Parent.Position.Y, this.Width, this.Height);
            Vector2 v    = new Vector2(MathHelper.Clamp(circle.Parent.Position.X, area.Left, area.Right),
                                       MathHelper.Clamp(circle.Parent.Position.Y, area.Top, area.Bottom));
            Vector2 direction = circle.Parent.Position - v;
            float   squared   = direction.LengthSquared();

            return((squared > 0) && (squared < circle.Radius * circle.Radius));
        }
コード例 #3
0
 public override bool IntersectCircle(CircleCollider circle)
 {
     throw new NotImplementedException();
 }
コード例 #4
0
 public abstract bool IntersectCircle(CircleCollider circle);