示例#1
0
        //检查某个点(ps)到Zone的距离
        public bool CheckZoneDistance(Zone zone, Vector2 ps, float distance)
        {
            var initpos   = zone.GetInitPos();
            var closestX  = Clamp(ps.X, initpos.X, initpos.X + zone.Width);
            var closestY  = Clamp(ps.Y, initpos.Y, initpos.Y + zone.Width);
            var distanceX = ps.X - closestX;
            var distanceY = ps.Y - closestY;

            if (distanceX * distanceX + distanceY * distanceY <= distance)
            {
                return(true);
            }
            return(false);
        }
示例#2
0
        //检查到Zode的距离
        public bool CheckZoneDistance(Shape _this, Zone zone, float distance)
        {
            var initpos   = zone.GetInitPos();
            var closestX  = Clamp(_this.Pos.X, initpos.X, initpos.X + zone.Width);
            var closestY  = Clamp(_this.Pos.Y, initpos.Y, initpos.Y + zone.Width);
            var distanceX = _this.Pos.X - closestX;
            var distanceY = _this.Pos.Y - closestY;

            if (distanceX * distanceX + distanceY * distanceY <= distance * distance)
            {
                return(true);
            }
            return(false);
        }