Ejemplo n.º 1
0
        public void ClearAllWasPressedState(int numFrames)
        {
            if (b0 != 0)
            {
                GamePadInput        pad = GamePadInput.GetGamePad0();
                GamePadInput.Button b   = pad.GetButton(b0);
                b.ClearAllWasPressedState();
                b.IgnoreUntilReleased = true;
                if (b1 != 0)
                {
                    b = pad.GetButton(b0);
                    b.ClearAllWasPressedState();
                    b.IgnoreUntilReleased = true;
                }
                if (numFrames > 0)
                {
                    GamePadInput.ClearAllWasPressedState(numFrames);
                }
            }

            for (int i = 0; i < keys.Count; i++)
            {
                KeyboardInput.ClearAllWasPressedState(keys[i]);
            }
        }   // end of ClearAllWasPressedState()
Ejemplo n.º 2
0
        }     // end of Update()

        public static void Init()
        {
            if (!keysInitialized)
            {
                for (int i = 0; i < kNumKeys; i++)
                {
                    keys[i] = new GamePadInput.Button();
                }
                keysInitialized = true;
            }

            // If this count isn't right, we may have accidentally deleted an entry.
            Debug.Assert(keyCharMap.Length == kNumKeys);
        }   // end of Init()
        public override bool MatchAction(Reflex reflex, out object param)
        {
            bool result = false;

            // Only jump through hoops the first time to get the pad.
            if (ButtonState == null)
            {
                GamePadInput pad = null;

                // See if there's a filter defining which player we should be.  If not, use pad0.
                if (playerId == GamePadSensor.PlayerId.Dynamic)
                {
                    playerId = GamePadSensor.PlayerId.All;

                    ReflexData data = reflex.Data;
                    for (int i = 0; i < data.Filters.Count; i++)
                    {
                        if (data.Filters[i] is PlayerFilter)
                        {
                            playerId = ((PlayerFilter)data.Filters[i]).playerIndex;
                        }
                    }
                }

                // Get the correct game pad.
                switch (playerId)
                {
                case GamePadSensor.PlayerId.All:
                    pad = GamePadInput.GetGamePad0();
                    break;

                case GamePadSensor.PlayerId.One:
                    pad = GamePadInput.GetGamePad1();
                    break;

                case GamePadSensor.PlayerId.Two:
                    pad = GamePadInput.GetGamePad2();
                    break;

                case GamePadSensor.PlayerId.Three:
                    pad = GamePadInput.GetGamePad3();
                    break;

                case GamePadSensor.PlayerId.Four:
                    pad = GamePadInput.GetGamePad4();
                    break;
                }

                // Get the correct game pad button.
                switch (button)
                {
                case GamePadButton.A:
                    ButtonState = pad.ButtonA;
                    break;

                case GamePadButton.B:
                    ButtonState = pad.ButtonB;
                    break;

                case GamePadButton.X:
                    ButtonState = pad.ButtonX;
                    break;

                case GamePadButton.Y:
                    ButtonState = pad.ButtonY;
                    break;

                case GamePadButton.LeftTrigger:
                    ButtonState = pad.LeftTriggerButton;
                    break;

                case GamePadButton.RightTrigger:
                    ButtonState = pad.RightTriggerButton;
                    break;
                }
            }

            result = ButtonState.IsPressed;

            // Return as a parameter a vector that can be used for input to the movement system, so
            // that players can drive and turn bots using gamepad buttons.
            param = new Vector2(0, 1);

            return(result);
        }