public void Initialize() { //Head = GenerateRandomSegment(); Head = new SnakeSegment(new Vector2((float)_gameSettings.TileSize / 2), new Size2(_gameSettings.TileSize, _gameSettings.TileSize), Direction.Right); _tail = new List <ISnakeSegment>(); _unitVector = new Vector2(_gameSettings.TileSize, 0); }
public void Grow() { _logger.Debug($"Snake.Grow()"); if (Head == null) { Head = new SnakeSegment(new Vector2((float)_gameSettings.TileSize), new Size2(_gameSettings.TileSize, _gameSettings.TileSize), Direction.Left); //GenerateRandomSegment(); } else { var last = Tail.Any() ? Tail.LastOrDefault() : Head; if (last != null) { var position = last.Position + DirectionHelper.RotateVector(_unitVector, DirectionHelper.GetOppositeDirection(last.Direction)); _tail.Add(new SnakeSegment(position, last.Size, last.Direction)); } } }