//检查某个点(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); }
//检查到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); }