示例#1
0
        private void UpdateAction()
        {
            List <Key?> keys = _keyboardInput.GetActiveKeys();

            Action <Key?> ManageAction = (key) =>
            {
                switch (key)
                {
                case Key.Left:
                    _playerShip.MoveLeft();
                    break;

                case Key.Right:
                    _playerShip.MoveRight();
                    break;

                case Key.Up:
                    //_playerShip.MoveUp();
                    break;

                case Key.Down:
                    //_playerShip.MoveDown();
                    break;

                case Key.Space:
                    _weapon.Add(_munitionsFactory.MakeArmament(ArmamentType.Pulsecannon, _playerShip.GetPositionOfCentre()));
                    break;
                }
            };

            for (int i = keys.Count - 1; i >= 0; i--)
            {
                ManageAction(keys[i]);
            }
        }
        /// <summary>
        /// Manage responses based on keys pressed for main menu and overall game state management
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="kea"></param>
        private void KeyUp_Pressed(object sender, KeyEventArgs kea)
        {
            List <Key?>   keys         = _keyboardInput.GetActiveKeys();
            Action <Key?> ManageAction = (key) =>
            {
                switch (key)
                {
                case Key.P:
                    btnPause_Click(sender, null);
                    break;

                case Key.Escape:
                    btnPause_Click(sender, null);
                    break;
                }
            };

            for (int i = keys.Count - 1; i >= 0; i--)
            {
                ManageAction(keys[i]);
            }

            _keyboardInput.ClearKeys();
        }