public SnakeMovementSmoothComponent(ISnakeEntity snakeEntity, IGameFieldComponent gameFieldComponent, IGameSettings gameSettings, SnakeControlKeys snakeControlKeys, IMovingCalculator movingCalculator) { _snakeEntity = snakeEntity ?? throw new ArgumentNullException(nameof(snakeEntity)); _gameFieldComponent = gameFieldComponent ?? throw new ArgumentNullException(nameof(gameFieldComponent)); _gameSettings = gameSettings ?? throw new ArgumentNullException(nameof(gameSettings)); _snakeControlKeys = snakeControlKeys ?? throw new ArgumentNullException(nameof(snakeControlKeys)); _movingCalculator = movingCalculator ?? throw new ArgumentNullException(nameof(movingCalculator)); _unitVector = Vector2.Multiply(Vector2.UnitX, _gameSettings.TileSize); _movingInterval = TimeSpan.FromMilliseconds(_gameSettings.DefaultMoveIntervalTime); }
public SnakeMovementTurnBased(ISnakeEntity snake, IGameFieldEntity gameField, IGameSettings gameSettings, SnakeControlKeys controls) { _snake = snake; _gameField = gameField; _gameSettings = gameSettings; _controls = controls; _movingInterval = TimeSpan.FromMilliseconds(_gameSettings.DefaultMoveIntervalTime); _unitVector = Vector2.Multiply(Vector2.UnitX, _gameSettings.TileSize); }