protected FlyCheckType FlyProc(Point targetPosition, ref NLPointF position, ref int angle) { if (MathTool.GetDistance(targetPosition, position.ToPoint()) < 10)//todo 10是一个估算值 { return FlyCheckType.EndPoint; } var posDiff = new NLPointF(targetPosition.X - position.X, targetPosition.Y - position.Y); posDiff = posDiff.Normalize() * (float)config.Speed; position = position + posDiff; var angleD = Math.Atan(-posDiff.Y / posDiff.X) / Math.PI * 180; angle = posDiff.X >= 0 ? (int)angleD : (int)angleD + 180; if (MathTool.GetDistance(targetPosition, position.ToPoint()) < 10)//todo 10是一个估算值 { return FlyCheckType.EndPoint; } return isLocked?FlyCheckType.Miss:FlyCheckType.ToCheck; }