コード例 #1
0
ファイル: MissileControler.cs プロジェクト: narlon/TOMClassic
        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;
        }