// 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; } } }
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); }
internal void Reset() { CurrentDirection = _defaultDirection; _partsToAdd = 0; Score = 0; SnakeParts.Clear(); SnakeParts.AddLast(new SnakePart(_snakePartImage, _defaultPosition, _color)); food.SetRandomPosition(); }
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); }
private void AddPiece() { SnakeParts.AddLast(new SnakePart(_snakePartImage, Tail.Position, _color)); }