예제 #1
0
        private ButtonPressed DencodeJoystickMapping(string mapping, GameControllerManager gameControllerManager)
        {
            string[] tokens       = mapping.Trim().Split(new char[] { ':' });
            byte     controllerId = byte.Parse(tokens[1]);

            GameController.Button button = (GameController.Button)Enum.Parse(typeof(GameController.Button), tokens[2]);
            if (controllerId < gameControllerManager.Count)
            {
                GameController gameController = gameControllerManager[controllerId];
                return(() => gameController[button]);
            }
            else
            {
                // may have been unplugged
                return(() => false);
            }
        }
예제 #2
0
 public GameControllerEventArgs(byte id, GameController.Button button)
 {
     Id     = id;
     Button = button;
 }
예제 #3
0
        private void OnControllerButtonPressed(object sender, GameControllerEventArgs gameControllerEventArgs)
        {
            GameController.Button button         = gameControllerEventArgs.Button;
            GameController        gameController = (GameController)sender;

            switch (joypadConfigState)
            {
            case JoypadConfigState.Start:
                joypadSettings.Start = joypadSettings.EncodeJoystickMapping(gameController.Id, button);
                ++joypadConfigState;
                configurationLabel.Text = "Press " + joypadConfigState;
                break;

            case JoypadConfigState.Select:
                joypadSettings.Select = joypadSettings.EncodeJoystickMapping(gameController.Id, button);
                ++joypadConfigState;
                configurationLabel.Text = "Press " + joypadConfigState;
                break;

            case JoypadConfigState.A:
                joypadSettings.A = joypadSettings.EncodeJoystickMapping(gameController.Id, button);
                ++joypadConfigState;
                configurationLabel.Text = "Press " + joypadConfigState;
                break;

            case JoypadConfigState.B:
                joypadSettings.B = joypadSettings.EncodeJoystickMapping(gameController.Id, button);
                ++joypadConfigState;
                configurationLabel.Text = "Press " + joypadConfigState;
                break;

            case JoypadConfigState.Up:
                joypadSettings.Up = joypadSettings.EncodeJoystickMapping(gameController.Id, button);
                ++joypadConfigState;
                configurationLabel.Text = "Press " + joypadConfigState;
                break;

            case JoypadConfigState.Down:
                joypadSettings.Down = joypadSettings.EncodeJoystickMapping(gameController.Id, button);
                ++joypadConfigState;
                configurationLabel.Text = "Press " + joypadConfigState;
                break;

            case JoypadConfigState.Left:
                joypadSettings.Left = joypadSettings.EncodeJoystickMapping(gameController.Id, button);
                ++joypadConfigState;
                configurationLabel.Text = "Press " + joypadConfigState;
                break;

            case JoypadConfigState.Right:
                joypadSettings.Right = joypadSettings.EncodeJoystickMapping(gameController.Id, button);

                foreach (GameController gameController2 in gameControllerManager.Controllers)
                {
                    gameController2.ButtonPressed -= OnControllerButtonPressed;
                }

                Close();
                break;
            }
        }