Exemplo n.º 1
0
    private static GamepadDpadMemory GetDpad(int index)
    {
        if (_DpadData[index] == null)
        {
            _DpadData[index] = new GamepadDpadMemory();
        }

        return(_DpadData[index]);
    }
Exemplo n.º 2
0
    public static void Update()
    {
        // Reset all states
        _AllButtonData.Reset();
        _AllDpadData.Reset();

        for (int i = 0; i < 4; i++)
        {
            if (GamePad.GetState((PlayerIndex)i).IsConnected)
            {
                if (_ButtonData[i] == null)
                {
                    _ButtonData[i] = new GamepadButtonMemory();
                }

                if (_DpadData[i] == null)
                {
                    _DpadData[i] = new GamepadDpadMemory();
                }

                // Copy current states into previous ones
                if (_IsSetup)
                {
                    System.Array.Copy(_ButtonData[i].States, _ButtonData[i].Previous_States, 11);
                    System.Array.Copy(_DpadData[i].States, _DpadData[i].Previous_States, 4);
                }
                else
                {
                    _IsSetup = true;
                }

                // Update all states of controller
                _ButtonData[i].States[0]  = GamePad.GetState((PlayerIndex)i).Buttons.Start;
                _ButtonData[i].States[1]  = GamePad.GetState((PlayerIndex)i).Buttons.Back;
                _ButtonData[i].States[2]  = GamePad.GetState((PlayerIndex)i).Buttons.LeftStick;
                _ButtonData[i].States[3]  = GamePad.GetState((PlayerIndex)i).Buttons.RightStick;
                _ButtonData[i].States[4]  = GamePad.GetState((PlayerIndex)i).Buttons.LeftShoulder;
                _ButtonData[i].States[5]  = GamePad.GetState((PlayerIndex)i).Buttons.RightShoulder;
                _ButtonData[i].States[6]  = GamePad.GetState((PlayerIndex)i).Buttons.Guide;
                _ButtonData[i].States[7]  = GamePad.GetState((PlayerIndex)i).Buttons.A;
                _ButtonData[i].States[8]  = GamePad.GetState((PlayerIndex)i).Buttons.B;
                _ButtonData[i].States[9]  = GamePad.GetState((PlayerIndex)i).Buttons.X;
                _ButtonData[i].States[10] = GamePad.GetState((PlayerIndex)i).Buttons.Y;
                for (int j = 0; j < 11; j++)
                {
                    if (_ButtonData[i].States[j] == ButtonState.Pressed)
                    {
                        _AllButtonData.States[j] = ButtonState.Pressed;
                    }

                    if (_ButtonData[i].Previous_States[j] == ButtonState.Pressed)
                    {
                        _AllButtonData.Previous_States[j] = ButtonState.Pressed;
                    }
                }


                _DpadData[i].States[0] = GamePad.GetState((PlayerIndex)i).DPad.Up;
                _DpadData[i].States[1] = GamePad.GetState((PlayerIndex)i).DPad.Down;
                _DpadData[i].States[2] = GamePad.GetState((PlayerIndex)i).DPad.Left;
                _DpadData[i].States[3] = GamePad.GetState((PlayerIndex)i).DPad.Right;
                for (int j = 0; j < 4; j++)
                {
                    if (_DpadData[i].States[j] == ButtonState.Pressed)
                    {
                        _AllDpadData.States[j] = ButtonState.Pressed;
                    }

                    if (_DpadData[i].Previous_States[j] == ButtonState.Pressed)
                    {
                        _AllDpadData.Previous_States[j] = ButtonState.Pressed;
                    }
                }
            }
        }
    }