Example #1
0
    public bool KeyDownAll(SCKey key)
    {
        // detect a keydown for all players
        for (int i = 0; i < NUM_PLAYERS; i++)
        {
            if (KeyDown(key, i))
            {
                return(true);
            }
        }

        return(false);
    }
Example #2
0
    public bool KeyDown(SCKey key, int playerId)
    {
        bool isKeyDown = false;

        // player id not connected
        if (!PlayerConnected(playerId))
        {
            return(isKeyDown);
        }

        // retrieve gamepad for player id
        GamePadState state = GamePad.GetState((PlayerIndex)playerId);

        // menu
        if (key == SCKey.MENU_START && ButtonPressed(state.Buttons.A, prev[playerId].Buttons.A))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.MENU_CREDITS && ButtonPressed(state.Buttons.Y, prev[playerId].Buttons.Y))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.MENU_QUIT && ButtonPressed(state.Buttons.Start, prev[playerId].Buttons.Start))
        {
            isKeyDown = true;
        }

        // character select
        else if (key == SCKey.SELECT_LEFT && ButtonPressed(state.DPad.Left, prev[playerId].DPad.Left))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.SELECT_LEFT && StickPressed(state.ThumbSticks.Left.X, -1f))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.SELECT_RIGHT && ButtonPressed(state.DPad.Right, prev[playerId].DPad.Right))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.SELECT_RIGHT && StickPressed(state.ThumbSticks.Left.X, 1f))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.SELECT_ACCEPT && ButtonPressed(state.Buttons.A, prev[playerId].Buttons.A))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.SELECT_BACK && ButtonPressed(state.Buttons.B, prev[playerId].Buttons.B))
        {
            isKeyDown = true;
        }

        // movement
        else if (key == SCKey.MOVE_FORWARD && StickPressed(state.ThumbSticks.Left.Y, 1f))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.MOVE_BACKWARD && StickPressed(state.ThumbSticks.Left.Y, -1f))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.MOVE_LEFT && StickPressed(state.ThumbSticks.Left.X, -1f))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.MOVE_RIGHT && StickPressed(state.ThumbSticks.Left.X, 1f))
        {
            isKeyDown = true;
        }

        // aim
        else if (key == SCKey.AIM_FORWARD && StickPressed(state.ThumbSticks.Right.Y, 1f))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.AIM_BACKWARD && StickPressed(state.ThumbSticks.Right.Y, -1f))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.AIM_LEFT && StickPressed(state.ThumbSticks.Right.X, -1f))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.AIM_RIGHT && StickPressed(state.ThumbSticks.Right.X, 1f))
        {
            isKeyDown = true;
        }

        // rotate
        else if (key == SCKey.ROTATE_LEFT && ButtonPressed(state.Buttons.LeftShoulder, prev[playerId].Buttons.LeftShoulder))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.ROTATE_RIGHT && ButtonPressed(state.Buttons.RightShoulder, prev[playerId].Buttons.RightShoulder))
        {
            isKeyDown = true;
        }

        // actions
        else if (key == SCKey.SPRINT && TriggerPressed(state.Triggers.Left))
        {
            isKeyDown = true;
        }
        else if (key == SCKey.ATTACK && TriggerPressed(state.Triggers.Right))
        {
            isKeyDown = true;
        }

        return(isKeyDown);
    }