Esempio n. 1
0
        public override void DoStateAction()
        {
//            Console.WriteLine(" - Charging!");
//            Console.WriteLine("Distance: " + OurRobot.Enemy.Distance);


            var target = new Point((int)(OurRobot.Enemy.Position.X - ((OurRobot.InnerCircleDiameter + OurRobot.OuterCircleDiameter) / 4) * Math.Cos(OurRobot.Enemy.BearingRadians)),
                                   (int)(OurRobot.Enemy.Position.Y - ((OurRobot.InnerCircleDiameter + OurRobot.OuterCircleDiameter) / 4) * Math.Sin(OurRobot.Enemy.BearingRadians)));


            // switch directions if we've stopped
            if (Math.Abs(OurRobot.Velocity) < 0.001)
            {
                _moveDirection *= -1;
            }

            // circle our enemy
            OurRobot.SetTurnRight(OurRobot.Enemy.BearingDegrees + 90);
            OurRobot.SetAhead(80 * _moveDirection);



            /*
             * var e = new Vector2D(OurRobot.Enemy.Position.X - OurRobot.X, OurRobot.Enemy.Position.Y - OurRobot.Y);
             * var distance = OurRobot.Enemy.Distance;
             * if (distance > 0)
             * {
             *  e.Normalize();
             *  if (distance < OurRobot.OuterCircleDiameter/2)
             *  {
             *      e *= 100 * (distance / (OurRobot.OuterCircleDiameter / 2));
             *  } else {
             *      e = e * 100; //Using 100 as maxSpeed for now
             *  }
             *  var steer = new Vector2D(e.X - OurRobot.Velocity, e.Y - OurRobot.Velocity);
             * }
             *
             * //            OurRobot.TurnRightRadians(Math.Acos(OurRobot.Enemy.Distance /
             * //                (Math.Sqrt(Math.Pow(OurRobot.Enemy.Distance, 2) +
             * //                        Math.Pow(new Vector2D(OurRobot.X, OurRobot.Y).Distance(new Vector2D(OurRobot.Enemy.Position.X,
             * //                                /*Replace enemy with intended pos//    OurRobot.Enemy.Position.Y)),
             * //                                2)))));
             *
             * //            OurRobot.SetAhead(e.Length());
             *
             */
        }
Esempio n. 2
0
        public override void DoStateAction()
        {
//            Console.WriteLine(" - Seeking");
            OurRobot.TurnRadarRightRadians(Math.PI * 2);
            KeepRadarLock(OurRobot.HeadingRadians + OurRobot.Enemy.BearingRadians);
        }