Esempio n. 1
0
        public DeadPlayer(Position[] points, Player src)
        {
            Source = src;
            _points = points.ToList();
            Alive = true;
            Length = points.Length;
            MovementLength = Config.data.BASE_MOVEMENT_LENGTH;
            MakeInvulnerable(1000);

            r = new Random();

            if (r.Next(2) == 1)
                turningLeft = true;
            else turningLeft = false;
            Color = Config.data.DEAD_SNAKE_COLOR;
            RealPlayer = false;

            if (Length > 1)
            {
                var dY = (points[1].Y - points[0].Y);
                var dX = (points[1].X - points[0].X);

                if (dX != 0)
                {
                    Heading = (int)(Math.Atan(dY / dX) * 180 / Math.PI);
                    if (dX > 0) Heading += 180;
                }
                else if (dY > 0) Heading = 90;
                else Heading = 270;
            }
            else Heading = 0;
            startTurn();
            setMoveTimer();
        }
Esempio n. 2
0
 public static List<TranslatedPosition> TranslateList(this List<Position> list, Position Reference)
 {
     var l = new List<TranslatedPosition>();
     foreach (var p in list)
     {
         l.Add(p.TranslatePosition(Reference));
     }
     return l;
 }
Esempio n. 3
0
        public int HeadingTo(Position pos)
        {
            var dY = (pos.Y - this.Y);
            var dX = (pos.X - this.X);

            int Heading;

            if (dX != 0)
            {
                Heading = (int)(Math.Atan(dY / dX) * 180 / Math.PI);
                if (dX > 0) Heading += 180;
            }
            else if (dY > 0) Heading = 90;
            else Heading = 270;

            return Heading;
        }
Esempio n. 4
0
 public static TranslatedPosition TranslatePosition(this Position pos, Position Reference)
 {
     return new TranslatedPosition(pos,Reference);
 }
Esempio n. 5
0
 public TranslatedPosition(Position p, Position reference)
 {
     X = (int)(reference.X - p.X);
     Y = (int)(reference.Y - p.Y);
 }
Esempio n. 6
0
 public TranslatedPosition(int x, int y, Position reference)
     : this(new Position(x, y), reference)
 {
 }
Esempio n. 7
0
 public double DistanceTo(Position position)
 {
     if (position == null) return double.MaxValue;
     return Math.Sqrt((position.X - X) * (position.X - X) + (position.Y - Y) * (position.Y - Y));
 }