public PlayerGamepadData HandleFixedInput(PlayerGamepadData gamepadData) { if (stateHandler.gamestate == GameState.game) { // if (gamepadData.characterIndex != -1) // players[gamepadData.characterIndex].HandleFixedInput(gamepadData.state, gamepadData.prevState); } return(gamepadData); }
void FindGamepads() { for (int i = 0; i < 4; ++i) { PlayerIndex testPlayerIndex = (PlayerIndex)i; GamePadState testState = GamePad.GetState(testPlayerIndex); // Debug.Log(string.Format("GamePad {0}", testPlayerIndex)); PlayerGamepadData gamepad = new PlayerGamepadData(); gamepad.state = GamePad.GetState(testPlayerIndex); gamepad.prevState = gamepad.state; gamepad.gamepadPlayerIndex = testPlayerIndex; gamepad.characterIndex = -1; gamepad.active = false; playerGamepadData[i] = gamepad; } }
PlayerGamepadData HandleMenuInputs(PlayerGamepadData gamepadData) { //Handle player (gamepad) activation - check if Y-button was pressed in this gamepad in this frame if (gamepadData.prevState.Buttons.Y == ButtonState.Released && gamepadData.state.Buttons.Y == ButtonState.Pressed) { //Invert active bool Debug.Log("GAMEPAD characterIndex:" + gamepadData.characterIndex + ", gamepadPlayerIndex: " + gamepadData.gamepadPlayerIndex + ", active: " + gamepadData.active); gamepadData.active = !gamepadData.active; Debug.Log("After toggling active state, Gamepad active: " + gamepadData.active); if (gamepadData.active) { // Playerdata newPlayerdata = new Playerdata(); // //Index should be first null // for(int j = 0; j < gamepad.playerDataArray.Length; j++) // { // Debug.Log(gamepad.playerDataArray[j].characterIndex); // if (gamepad.playerDataArray[j].characterIndex == -1) // { // Debug.Log("Activated gamepad's characterIndex: " + j); // newPlayerdata.characterIndex = j; // gamepadData.characterIndex = newPlayerdata.characterIndex; // newPlayerdata.gamepadPlayerIndex = gamepadData.gamepadPlayerIndex; // gamepad.playerDataArray[j] = newPlayerdata; // Debug.Log("Added to array"); // break; // } // } // stateHandler.menuControl.AddPlayer(newPlayerdata.characterIndex); } else { // bool removed = false; // for (int j = 0; j < gamepad.playerDataArray.Length; j++) // { // if (!removed && gamepad.playerDataArray[j].gamepadPlayerIndex == gamepadData.gamepadPlayerIndex) // { // stateHandler.menuControl.RemovePlayer(gamepad.playerDataArray[j].characterIndex); // removed = true; // Debug.Log("deactivation of gamepad: " + gamepad.playerDataArray[j].gamepadPlayerIndex + ", characterIndex: " + gamepad.playerDataArray[j].characterIndex); // gamepad.playerDataArray[j].characterIndex = -1; // } // } } } // if (gamepadData.active && gamepadData.prevState.Buttons.A == ButtonState.Released && gamepadData.state.Buttons.A == ButtonState.Pressed) // { // stateHandler.menuControl.ToggleReady(gamepadData.characterIndex); // } // if (gamepadData.active && gamepadData.prevState.ThumbSticks.Left.X < 0.1f && gamepadData.state.ThumbSticks.Left.X > 0.1f) // { // if (stateHandler.menuControl.avatars) // stateHandler.menuControl.avatars.ChangeAvatar(gamepadData.characterIndex, 1); // } // if (gamepadData.active && gamepadData.prevState.ThumbSticks.Left.X > -0.1f && gamepadData.state.ThumbSticks.Left.X < -0.1f) // { // if (stateHandler.menuControl.avatars) // stateHandler.menuControl.avatars.ChangeAvatar(gamepadData.characterIndex, -1); // } return(gamepadData); }