Esempio n. 1
0
        // yılanın ilerlemesi ayarlandı.
        public void Go(Direction direction)
        {
            direction1 = direction;

            if (direction._x == 0 && direction._y == 0)
            {
            }
            else
            {
                // yılanın diğer parçalarına baş kısmı takip ettirildi.
                for (int i = snakeParts.Length - 1; i > 0; i--)                                     // hangi yöne gitmek isterse gidebilsin diye 0 dahil edilmedi.
                {
                    snakeParts[i] = new SnakeParts(snakeParts[i - 1].x_, snakeParts[i - 1].y_);
                }

                snakeParts[0] = new SnakeParts((snakeParts[0].x_ + direction._x) % size.Width, (snakeParts[0].y_ + direction._y) % size.Height);

                if (snakeParts[0].x_ < 0)
                {
                    snakeParts[0].x_ += size.Width;
                }
                if (snakeParts[0].y_ < 0)
                {
                    snakeParts[0].y_ += size.Height;
                }
            }
        }
Esempio n. 2
0
 public Snake(Size gameSize)
 {
     size          = gameSize;
     snakeParts    = new SnakeParts[3];                      // başlangıçta yılanın 3 parça olması sağlandı.
     snakeSize     = 3;
     snakeParts[0] = new SnakeParts(150, 150);               // yılanın başlangıç konumu belirtildi -baş kısmı-.
     snakeParts[1] = new SnakeParts(160, 150);
     snakeParts[2] = new SnakeParts(170, 150);
 }
Esempio n. 3
0
 internal void Reset()
 {
     CurrentDirection = _defaultDirection;
     _partsToAdd      = 0;
     Score            = 0;
     SnakeParts.Clear();
     SnakeParts.AddLast(new SnakePart(_snakePartImage, _defaultPosition, _color));
     food.SetRandomPosition();
 }
Esempio n. 4
0
        private void MoveLast()
        {
            switch (CurrentDirection)
            {
            case Direction.Up:
                if (CurrentDirection != Direction.Down)
                {
                    Tail.Position = Head.Position - new Vector2(0, _snakePartImage.Width + _padding);
                }
                break;

            case Direction.Right:
                if (CurrentDirection != Direction.Left)
                {
                    Tail.Position = Head.Position + new Vector2(_snakePartImage.Width + _padding, 0);
                }
                break;

            case Direction.Down:
                if (CurrentDirection != Direction.Up)
                {
                    Tail.Position = Head.Position + new Vector2(0, _snakePartImage.Width + _padding);
                }
                break;

            case Direction.Left:
                if (CurrentDirection != Direction.Right)
                {
                    Tail.Position = Head.Position - new Vector2(_snakePartImage.Width + _padding, 0);
                }
                break;
            }
            SnakePart newHead = Tail;

            SnakeParts.RemoveLast();
            SnakeParts.AddFirst(newHead);
        }
Esempio n. 5
0
 private void AddPiece()
 {
     SnakeParts.AddLast(new SnakePart(_snakePartImage, Tail.Position, _color));
 }