コード例 #1
0
        public void OnButton(GamePad.Button button, GamePad.Index index, Action handler)
        {
            if (!_handlers.ContainsKey(button))
            {
                _handlers.Add(button, new List <Action>());
            }

            _handlers[button].Add(handler);
        }
コード例 #2
0
ファイル: GamepadMapping.cs プロジェクト: Mnemorie/unifit
    public GamepadMapping(int player)
    {
        GamePadIndex = (GamePad.Index)Enum.Parse(typeof(GamePad.Index), PlayerPrefs.GetString("p" + player + "GamePadIndex"));

        GamePadHorizontalAxis = (GamePad.Axis)Enum.Parse(typeof(GamePad.Axis), PlayerPrefs.GetString("p" + player + "GamePadHorizontalAxis"));
        GamePadHorizontalAxisDirection = (InputConfigurator.AxisDirection)Enum.Parse(typeof(InputConfigurator.AxisDirection), PlayerPrefs.GetString("p" + player + "GamePadHorizontalAxisDirection"));

        GamePadVerticalAxis = (GamePad.Axis)Enum.Parse(typeof(GamePad.Axis), PlayerPrefs.GetString("p" + player + "GamePadVerticalAxis"));
        GamePadVerticalAxisDirection = (InputConfigurator.AxisDirection)Enum.Parse(typeof(InputConfigurator.AxisDirection), PlayerPrefs.GetString("p" + player + "GamePadVerticalAxisDirection"));

        GamePadRocketUp = (GamePad.Button)Enum.Parse(typeof(GamePad.Button), PlayerPrefs.GetString("p" + player + "GamePadRocketUp"));
        GamePadRocketDown = (GamePad.Button)Enum.Parse(typeof(GamePad.Button), PlayerPrefs.GetString("p" + player + "GamePadRocketDown"));
        GamePadRocketLeft = (GamePad.Button)Enum.Parse(typeof(GamePad.Button), PlayerPrefs.GetString("p" + player + "GamePadRocketLeft"));
        GamePadRocketRight = (GamePad.Button)Enum.Parse(typeof(GamePad.Button), PlayerPrefs.GetString("p" + player + "GamePadRocketRight"));
    }
コード例 #3
0
ファイル: DualShockFour.cs プロジェクト: the40san/EasyGamepad
            public KeyCode VirtualButtonToKeyCode(GamePad.Button virutalButton)
            {
                switch (virutalButton)
                {
                case GamePad.Button.A:
                    return(KeyCode.Joystick1Button1);

                case GamePad.Button.B:
                    return(KeyCode.Joystick1Button2);

                case GamePad.Button.X:
                    return(KeyCode.Joystick1Button0);

                case GamePad.Button.Y:
                    return(KeyCode.Joystick1Button3);

                case GamePad.Button.L1:
                    return(KeyCode.Joystick1Button4);

                case GamePad.Button.L2:
                    return(KeyCode.Joystick1Button6);

                case GamePad.Button.L3:
                    return(KeyCode.Joystick1Button10);

                case GamePad.Button.R1:
                    return(KeyCode.Joystick1Button5);

                case GamePad.Button.R2:
                    return(KeyCode.Joystick1Button7);

                case GamePad.Button.R3:
                    return(KeyCode.Joystick1Button11);

                default:
                    throw new InvalidVirtualButton();
                }
            }
コード例 #4
0
            public KeyCode VirtualButtonToKeyCode(GamePad.Button virtualButton)
            {
                switch (virtualButton)
                {
                case GamePad.Button.A:
                    return(KeyCode.H);

                case GamePad.Button.B:
                    return(KeyCode.J);

                case GamePad.Button.X:
                    return(KeyCode.K);

                case GamePad.Button.Y:
                    return(KeyCode.L);

                case GamePad.Button.L1:
                    return(KeyCode.T);

                case GamePad.Button.L2:
                    return(KeyCode.Y);

                case GamePad.Button.L3:
                    return(KeyCode.U);

                case GamePad.Button.R1:
                    return(KeyCode.I);

                case GamePad.Button.R2:
                    return(KeyCode.O);

                case GamePad.Button.R3:
                    return(KeyCode.P);

                default:
                    throw new InvalidVirtualButton();
                }
            }
コード例 #5
0
        public bool GetButtonState(GamePad.Button button)
        {
            switch (button)
            {
            case GamePad.Button.A:
                return(A);

            case GamePad.Button.B:
                return(B);

            case GamePad.Button.Y:
                return(X);

            case GamePad.Button.X:
                return(Y);

            case GamePad.Button.RightShoulder:
                return(RightShoulder);

            case GamePad.Button.LeftShoulder:
                return(LeftShoulder);

            case GamePad.Button.RightStick:
                return(RightStick);

            case GamePad.Button.LeftStick:
                return(LeftStick);

            case GamePad.Button.Back:
                return(Back);

            case GamePad.Button.Start:
                return(Start);

            default:
                return(false);
            }
        }
コード例 #6
0
ファイル: GamePad.cs プロジェクト: the40san/EasyGamepad
        public static bool GetButtonState(GamePad.Button virtualButton)
        {
            KeyCode keycode = GetKeyCodeConverter().VirtualButtonToKeyCode(virtualButton);

            return(Input.GetKey(keycode));
        }
コード例 #7
0
 /// <summary>
 /// ボタンが離された瞬間
 /// </summary>
 /// <param name="index">プレイヤー番号</param>
 /// <param name="button">ボタン</param>
 private bool Pull_Button(GamePad.Index index, GamePad.Button button)
 {
     return(GamePad.GetButtonUp(index, button));
 }
コード例 #8
0
 /// <summary>
 /// ボタンが押されている間
 /// </summary>
 /// <param name="index">プレイヤー番号</param>
 /// <param name="button">ボタン</param>
 private bool Hold_Button(GamePad.Index index, GamePad.Button button)
 {
     return(GamePad.GetButton(index, button));
 }
コード例 #9
0
 /// <summary>
 /// ボタンが押された瞬間
 /// </summary>
 /// <param name="index">プレイヤー番号</param>
 /// <param name="button">ボタン</param>
 private bool Push_Button(GamePad.Index index, GamePad.Button button)
 {
     return(GamePad.GetButtonDown(index, button));
 }
コード例 #10
0
    private void UpdateGame (GamepadState state)
    {

        // No action if not your turn
        if (Game.instance.currentPlayer.canAction == false)
        {
            return;
        }

        // Do you press a button ?
        if(isTriggered == false)
        {
            /****** Actions ******/
            /* Button A */
			if (GamePad.GetButtonDown(GamePad.Button.A, Game.instance.currentPlayer.controllerIndex) == true && Game.instance.currentPlayer.GetCountMinions(MinionColor.GREEN) > 0)
            {
                buttonTriggered = GamePad.Button.A;
                isTriggered = true;
                _isKeyStroke = false;
                currentMode = Mode.Action;
                return;
            } else if (Input.GetButton("Button_A") == true && Game.instance.currentPlayer.GetCountMinions(MinionColor.GREEN) > 0) {
                buttonTriggered = GamePad.Button.A;
                isTriggered = true;
                _isKeyStroke = true;
                currentMode = Mode.Action;
                return;
            }

            /* Button B */
			if (GamePad.GetButtonDown(GamePad.Button.B, Game.instance.currentPlayer.controllerIndex) == true && Game.instance.currentPlayer.GetCountMinions (MinionColor.RED) > 0)
            {
                buttonTriggered = GamePad.Button.B;
                isTriggered = true;
                _isKeyStroke = false;
                currentMode = Mode.Action;
                return;
            } else if (Input.GetButton("Button_B") == true && Game.instance.currentPlayer.GetCountMinions(MinionColor.RED) > 0) {
                buttonTriggered = GamePad.Button.B;
                isTriggered = true;
                _isKeyStroke = true;
                currentMode = Mode.Action;
                return;
            }

            /* Button X */
            if (GamePad.GetButtonDown(GamePad.Button.X, Game.instance.currentPlayer.controllerIndex) == true && Game.instance.currentPlayer.GetCountMinions (MinionColor.BLUE) > 0)
            {
                buttonTriggered = GamePad.Button.X;
                isTriggered = true;
                _isKeyStroke = false;
                currentMode = Mode.Action;
                return;
            } else if (Input.GetButton("Button_X") == true && Game.instance.currentPlayer.GetCountMinions(MinionColor.BLUE) > 0) {
                buttonTriggered = GamePad.Button.X;
                isTriggered = true;
                _isKeyStroke = true;
                currentMode = Mode.Action;
                return;
            }

            /* Button Y */
            if (GamePad.GetButtonDown(GamePad.Button.Y, Game.instance.currentPlayer.controllerIndex) == true && Game.instance.currentPlayer.GetCountMinions (MinionColor.YELLOW) > 0)
            {
                buttonTriggered = GamePad.Button.Y;
                isTriggered = true;
                _isKeyStroke = false;
                currentMode = Mode.Action;
                return;
            } else if (Input.GetButton("Button_Y") == true && Game.instance.currentPlayer.GetCountMinions(MinionColor.YELLOW) > 0) {
                buttonTriggered = GamePad.Button.Y;
                isTriggered = true;
                _isKeyStroke = true;
                currentMode = Mode.Action;
                return;
            }

            /* Moves */
			if (Input.GetButton("Up") == true || state.Up == true)
            {
                int tmpTileIndex = Game.instance.currentPlayer.tileIndex - (1 * Game.instance.currentPlayer.speed * Game.instance.mapManager.map.columns);
                if (Game.instance.currentPlayer.CanMove(tmpTileIndex) == true)
                {
                    buttonTriggered = GamePad.Button.Up;
                    isTriggered = true;
                    _isKeyStroke = Input.GetButton("Up") == true;
                    currentMode = Mode.Move;
                    _newTileIndex = tmpTileIndex;
                    return;
                }
            }
            if (Input.GetButton("Right") == true || state.Right == true)
            {
                int tmpTileIndex = Game.instance.currentPlayer.tileIndex + (1 * Game.instance.currentPlayer.speed);
                if (Game.instance.currentPlayer.CanMove(tmpTileIndex) == true)
                {
                    buttonTriggered = GamePad.Button.Right;
                    isTriggered = true;
                    _isKeyStroke = Input.GetButton("Right") == true;
                    currentMode = Mode.Move;
                    _newTileIndex = tmpTileIndex;
                    return;
                }
            }
            if (Input.GetButton("Down") == true || state.Down == true)
            {
                int tmpTileIndex = Game.instance.currentPlayer.tileIndex + (1 * Game.instance.currentPlayer.speed * Game.instance.mapManager.map.columns);
                if (Game.instance.currentPlayer.CanMove(tmpTileIndex) == true)
                {
                    buttonTriggered = GamePad.Button.Down;
                    isTriggered = true;
                    _isKeyStroke = Input.GetButton("Down") == true;
                    currentMode = Mode.Move;
                    _newTileIndex = tmpTileIndex;
                    return;
                }
            }
            if (Input.GetButton("Left") == true || state.Left == true)
            {
                int tmpTileIndex = Game.instance.currentPlayer.tileIndex - (1 * Game.instance.currentPlayer.speed);
                if (Game.instance.currentPlayer.CanMove(tmpTileIndex) == true)
                {
                    buttonTriggered = GamePad.Button.Left;
                    isTriggered = true;
                    _isKeyStroke = Input.GetButton("Left") == true;
                    currentMode = Mode.Move;
                    _newTileIndex = tmpTileIndex;
                    return;
                }
            }
        }
        // Do you release a button ?
        else
        {
            if (buttonTriggered == GamePad.Button.A && 
                ((GamePad.GetButtonUp(GamePad.Button.A, Game.instance.currentPlayer.controllerIndex) == true && _isKeyStroke == false) || 
                (Input.GetButton("Button_A") == false && _isKeyStroke == true))
            )
            {
                buttonTriggered = GamePad.Button.None;
                isTriggered = false;
                _isKeyStroke = false;
                currentMode = Mode.None;
                return;
            }
            if (buttonTriggered == GamePad.Button.B && 
                ((GamePad.GetButtonUp(GamePad.Button.B, Game.instance.currentPlayer.controllerIndex) == true && _isKeyStroke == false) || 
                (Input.GetButton("Button_B") == false && _isKeyStroke == true))
            )
            {
                buttonTriggered = GamePad.Button.None;
                isTriggered = false;
                _isKeyStroke = false;
                currentMode = Mode.None;
                return;
            }
            if (buttonTriggered == GamePad.Button.X && 
                ((GamePad.GetButtonUp(GamePad.Button.X, Game.instance.currentPlayer.controllerIndex) == true && _isKeyStroke == false) ||
                (Input.GetButton("Button_X") == false && _isKeyStroke == true))
            )
            {
                buttonTriggered = GamePad.Button.None;
                isTriggered = false;
                _isKeyStroke = false;
                currentMode = Mode.None;
                return;
            }
            if (buttonTriggered == GamePad.Button.Y && 
                ((GamePad.GetButtonUp(GamePad.Button.Y, Game.instance.currentPlayer.controllerIndex) == true && _isKeyStroke == false) ||
                (Input.GetButton("Button_Y") == false && _isKeyStroke == true))
            )
            {
                buttonTriggered = GamePad.Button.None;
                isTriggered = false;
                _isKeyStroke = false;
                currentMode = Mode.None;
                return;
            }
            if (buttonTriggered == GamePad.Button.Up && 
                ((state.Up == false && _isKeyStroke == false) ||
                (Input.GetButton("Up") == false && _isKeyStroke == true))
            )
            {
                buttonTriggered = GamePad.Button.None;
                isTriggered = false;
                _isKeyStroke = false;
                currentMode = Mode.None;
                ActionLoader.instance.CleanHighlight(_newTileIndex);
                return;
            }
            if (buttonTriggered == GamePad.Button.Right && 
                ((state.Right == false && _isKeyStroke == false) || 
                (Input.GetButton("Right") == false && _isKeyStroke == true))
            )
            {
                buttonTriggered = GamePad.Button.None;
                isTriggered = false;
                _isKeyStroke = false;
                currentMode = Mode.None;
                ActionLoader.instance.CleanHighlight(_newTileIndex);
                return;
            }
            if (buttonTriggered == GamePad.Button.Down &&
                ((state.Down == false && _isKeyStroke == false) ||
                (Input.GetButton("Down") == false && _isKeyStroke == true))
            )
            {
                buttonTriggered = GamePad.Button.None;
                isTriggered = false;
                _isKeyStroke = false;
                currentMode = Mode.None;
                ActionLoader.instance.CleanHighlight(_newTileIndex);
                return;
            }
            if (buttonTriggered == GamePad.Button.Left &&
                ((state.Left == false && _isKeyStroke == false) ||
                (Input.GetButton("Left") == false && _isKeyStroke == true))
            )
            {
                buttonTriggered = GamePad.Button.None;
                isTriggered = false;
                _isKeyStroke = false;
                currentMode = Mode.None;
                ActionLoader.instance.CleanHighlight(_newTileIndex);
                return;
            }

        }

    }
コード例 #11
0
 public void Clean()
 {
     _isKeyStroke = false;
     isTriggered = false;
     currentMode = Mode.None;
     buttonTriggered = GamePad.Button.None;
 }