public virtual void Update(GameTime gameTime) { if (GlobalControls.PausePressed()) { BackPressed(); Globals.soundEffectsManager.PlaySoundEffect(SoundEffects.MenuBack, false, SoundEffectsManager.zeroPanVectorLocation); } if (currentSubMenuScreenIndex >= 0) { subMenues[currentSubMenuScreenIndex].Update(gameTime); } else { if (GlobalControls.DeclinePressed()) { BackPressed(); Globals.soundEffectsManager.PlaySoundEffect(SoundEffects.MenuBack, false, SoundEffectsManager.zeroPanVectorLocation); } if (buttonList.Count > 0) { if (GlobalControls.MenuDownPressed()) { currentlySelectedButtonIndex++; if (currentlySelectedButtonIndex >= buttonList.Count) { if (cycleOptions) { currentlySelectedButtonIndex = 0; } else { currentlySelectedButtonIndex = buttonList.Count - 1; } } while (!buttonList[currentlySelectedButtonIndex].selectable) { currentlySelectedButtonIndex++; if (currentlySelectedButtonIndex >= buttonList.Count) { if (cycleOptions) { currentlySelectedButtonIndex = 0; } else { currentlySelectedButtonIndex = LastSelectableButtonIndex(); } } } Globals.soundEffectsManager.PlaySoundEffect(SoundEffects.MenuDown, false, SoundEffectsManager.zeroPanVectorLocation); } if (GlobalControls.MenuUpPressed()) { currentlySelectedButtonIndex--; if (currentlySelectedButtonIndex < 0) { if (cycleOptions) { currentlySelectedButtonIndex = buttonList.Count - 1; } else { currentlySelectedButtonIndex = 0; } } while (!buttonList[currentlySelectedButtonIndex].selectable) { currentlySelectedButtonIndex--; if (currentlySelectedButtonIndex < 0) { if (cycleOptions) { currentlySelectedButtonIndex = buttonList.Count - 1; } else { currentlySelectedButtonIndex = FirstSelectableButtonIndex(); } } } Globals.soundEffectsManager.PlaySoundEffect(SoundEffects.MenuUp, false, SoundEffectsManager.zeroPanVectorLocation); } if (PlayerControls.MousePositionMoved()) { for (int i = 0; i < buttonList.Count; i++) { if (buttonList[i].BoundingRect().Contains(PlayerControls.MousePosition()) && buttonList[i].selectable && buttonList[i].inScrollView) { currentlySelectedButtonIndex = i; } } } for (int i = 0; i < buttonList.Count; i++) { buttonList[i].selected = false; } if (currentlySelectedButtonIndex < buttonList.Count) { buttonList[currentlySelectedButtonIndex].selected = true; } for (int i = 0; i < buttonList.Count; i++) { buttonList[i].Update(gameTime); } } } }
public override void Update(GameTime gameTime) { if (selected && menuScreen != null && enabled && inScrollView) { if (((PlayerControls.MouseLeftPressed() && RightArrowBoundingRect().Contains(PlayerControls.MousePosition())) || GlobalControls.MenuRightPressed() || PlayerControls.MenuRightPressed(ControlsConfig.keyboardControllerIndex))) { RightArrowPressed(); } if (((PlayerControls.MouseLeftPressed() && LeftArrowBoundingRect().Contains(PlayerControls.MousePosition())) || GlobalControls.MenuLeftPressed() || PlayerControls.MenuLeftPressed(ControlsConfig.keyboardControllerIndex))) { LeftArrowPressed(); } } }
public override void Update(GameTime gameTime) { if (!waitingForKeyPress) { base.Update(gameTime); if (GlobalControls.MenuLeftPressed() || (PlayerControls.MouseLeftPressed() && LeftArrowBoundingRect().Contains(PlayerControls.MousePosition()))) { selectionArrowColor = -3; DefaultControls.DecrementKeyboardPreset(); CheckToEnableButtons(); UpdateNewControlsPreset(); } else if (GlobalControls.MenuRightPressed() || (PlayerControls.MouseLeftPressed() && RightArrowBoundingRect().Contains(PlayerControls.MousePosition()))) { selectionArrowColor = 3; DefaultControls.IncrementKeyboardPreset(); CheckToEnableButtons(); UpdateNewControlsPreset(); } } else { if (!waitingForAllKeysToBeUnpressed) { if (KeyboardInputPressed()) { ((KeyboardControlsMenuButton)buttonList[buttonIndexPressed]).SetNewInput(KeyPressed()); waitingForKeyPress = false; } } else if (!KeyboardInputPressed()) { waitingForAllKeysToBeUnpressed = false; } } }