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); }
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); }