public override void HandleInput(InputState input) { if (input == null) throw new ArgumentNullException("input"); // Look up inputs for the active player profile. int playerIndex = (int)ControllingPlayer.Value; KeyboardState keyboardState = input.CurrentKeyboardStates[playerIndex]; GamePadState gamePadState = input.CurrentGamePadStates[playerIndex]; // if the user pressed the back button, we return to the main menu PlayerIndex player; if (input.IsNewButtonPress(Buttons.Back, ControllingPlayer, out player)) { LoadingScreen.Load(ScreenManager, false, ControllingPlayer, new BackgroundScreen(), new MainMenuScreen(content)); } }
/// <summary> /// Responds to user input, changing the selected entry and accepting /// or cancelling the menu. /// </summary> public override void HandleInput(InputState input) { // we cancel the current menu screen if the user presses the back button PlayerIndex player; if (input.IsNewButtonPress(Buttons.Back, ControllingPlayer, out player)) { OnCancel(player); } // look for any taps that occurred and select any entries that were tapped //foreach (GestureSample gesture in input.Gestures) //{ // if (gesture.GestureType == GestureType.Tap) // { // // convert the position to a Point that we can test against a Rectangle // Point tapLocation = new Point((int)gesture.Position.X, (int)gesture.Position.Y); // menuTitle = "Point: " + tapLocation.X + "-" + tapLocation.Y; // // iterate the entries to see if any were tapped // for (int i = 0; i < menuEntries.Count; i++) // { // MenuEntry menuEntry = menuEntries[i]; // if (GetMenuEntryHitBounds(menuEntry).Contains(tapLocation)) // { // // select the entry. since gestures are only available on Windows Phone, // // we can safely pass PlayerIndex.One to all entries since there is only // // one player on Windows Phone. // OnSelectEntry(i, PlayerIndex.One); // } // } // } // if (gesture.GestureType == GestureType.VerticalDrag) // { // menuTitle = "Drag: " + gesture.Delta.Y; // foreach (MenuEntry menu in MenuEntries) // { // if (gesture.Delta.Y > 0) // { // menu.PositionY += gesture.Delta.Y; // } // else if (gesture.Delta.Y < 0) // { // menu.PositionY += gesture.Delta.Y; // } // } // } //} base.HandleInput(input); }