Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
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));
                }
            }
        }