示例#1
0
 public override void HandleInput(InputState input)
 {
     // cancel the current screen if the user presses the back button
     PlayerIndex player;
     if (input.IsNewButtonPress(Buttons.Back, null, out player))
     {
         ExitScreen();
     }
     RootControl.HandleInput(input);
     base.HandleInput(input);
 }
示例#2
0
 public override void HandleInput(InputState input)
 {
     if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
     {
         MessageBoxScreen alert = new MessageBoxScreen("Warnning");
         alert.ok.Selected += alertOk;
         alert.cancel.Selected += alertCancel;
         ScreenManager.AddScreen(alert, null);
     }
     else
         base.HandleInput(input);
 }
示例#3
0
 /// <summary>
 /// Allows the screen to handle user input. Unlike Update, this method
 /// is only called when the screen is active, and not when some other
 /// screen has taken the focus.
 /// </summary>
 public virtual void HandleInput(InputState input)
 {
 }
示例#4
0
 public override void HandleInput(InputState input)
 {
     // cancel the current screen if the user presses the back button
     bool pressedGoButton = false;
     foreach (GestureSample gesture in input.Gestures)
     {
         if (gesture.GestureType == GestureType.Tap)
         {
             //start new game
             if (GetButtonHitBounds(buttonGo).Contains(new Point((int)gesture.Position.X, (int)gesture.Position.Y)))
             {
                 buttonGo.OnSelectEntry();
                 pressedGoButton = true;
             }
         }
     }
     if (!pressedGoButton)
         base.HandleInput(input);
 }
示例#5
0
        /// <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);

                    // iterate the entries to see if any were tapped
                    for (int i = 0; i < menuEntries.Count; i++)
                    {
                        MenuEntry menuEntry = menuEntries[i];

                        Rectangle a = GetMenuEntryHitBounds(menuEntry);
                        //Debug.WriteLine("menu:x:"+a.X.ToString()+"y:"+a.Y.ToString()+"width:"+a.Width.ToString()+"height:"+a.Height+"pt:"+tapLocation.X.ToString()+"|"+tapLocation.Y.ToString());
                        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);
                        }
                    }
                }
            }
        }