public GameEngine(Size fieldSize, IUserInputListener listener, IRenderer renderer, Action onGameOver = null) { _inputQueue = new InputQueue(HandleMovement); _timer = new GranularTimer(OnTimerCallback, 1000, 4); _onGameOver = onGameOver; var gameField = new GameField(fieldSize, _inputQueue); _moveHandler = new MoveHandler(gameField, renderer); _inputListener = listener; _inputListener.BindInputSerializer(_inputQueue); _log = new Logger(); _log.Init(string.Format("width:{0};height:{1}", fieldSize.Width, fieldSize.Height)); }
public MoveHandler(GameField gameField, IRenderer renderer) { _gameField = gameField; _collisionDetector = new CollisionDetector(_gameField); _renderer = renderer; }
public CollisionDetector(GameField gameField) { _gameField = gameField; }