Beispiel #1
0
        private void HandleInput()
        {
            if (InputManager.IsMouseButtonDown(MouseButton.Middle))
            {
                _middleMouseButtonCommand.Execute(_gameTimeHandler.SecondsElapsed);
                Mouse.SetCursor(MouseCursor.SizeAll);
            }
            else
            {
                Mouse.SetCursor(MouseCursor.Arrow);
            }

            if (_gameStateManager.IsPlaying || _gameStateManager.IsNewGame)
            {
                if (InputManager.WasMouseButtonReleased(MouseButton.Right))
                {
                    _rightMouseButtonCommand.Execute(_gameTimeHandler.SecondsElapsed);
                }

                if (InputManager.WasMouseButtonReleased(MouseButton.Left))
                {
                    var fieldSnapshot = _field.CreateSnapshot();
                    var snapshot      = _leftMouseButtonCommand.Execute(_gameTimeHandler.SecondsElapsed);
                    if (snapshot != null)
                    {
                        if (!_gameStateManager.IsPlaying)
                        {
                            _gameStateManager.CurrentState = GameState.Playing;
                        }

                        if (snapshot.NewCellState.IsMine && snapshot.NewCellState.IsOpen)
                        {
                            _gameStateManager.CurrentState = GameState.Lost;
                        }
                        else if (_field.FreeCellsLeft == 0)
                        {
                            _gameStateManager.CurrentState = GameState.Won;
                            _playerTurnsContainer.AddTurn(fieldSnapshot, snapshot, "Won!", _gameTimeHandler.SecondsElapsed);
                            _scoreHandler.Store("player#1", new Score(_gameTimeHandler.SecondsElapsed));
                        }
                    }
                }
            }

            if (InputManager.WasKeyPressed(Keys.Space))
            {
                _field.Generate();
                _gameStateManager.CurrentState = GameState.NewGame;
                _loseColor = Color.Red * 0.01f;
            }

            if (InputManager.WasWheelScrolledUp())
            {
                if (_camera.Zoom < 1.5f)
                {
                    _camera.ZoomIn(0.05f);
                }
            }
            if (InputManager.WasWheelScrolledDown())
            {
                if (_camera.Zoom > 0.3f)
                {
                    _camera.ZoomOut(0.05f);
                }
            }
        }