示例#1
0
        /// <summary>
        /// Responds to user input, changing the selected entry and accepting
        /// or cancelling the menu.
        /// </summary>
        public override void HandleInput(InputManager input)
        {
            // Move to the previous menu entry?
            if (input.IsMenuUp())
            {
                SoundManager.PlaySound(SoundManager.SOUND_MENU_UP);

                selectedEntry--;

                if (selectedEntry < 0)
                    selectedEntry = menuEntries.Count - 1;
            }

            // Move to the next menu entry?
            if (input.IsMenuDown())
            {
                SoundManager.PlaySound(SoundManager.SOUND_MENU_DOWN);

                selectedEntry++;

                if (selectedEntry >= menuEntries.Count)
                    selectedEntry = 0;
            }

            // Accept or cancel the menu? We pass in our ControllingPlayer, which may
            // either be null (to accept input from any player) or a specific index.
            // If we pass a null controlling player, the InputState helper returns to
            // us which player actually provided the input. We pass that through to
            // OnSelectEntry and OnCancel, so they can tell which player triggered them.

            if (input.IsMenuSelect())
            {
                if (selectedEntry == menuEntries.Count - 1 && lastOptionExit)
                    SoundManager.PlaySound(SoundManager.SOUND_MENU_CANCEL);
                else
                    SoundManager.PlaySound(SoundManager.SOUND_MENU_CONFIRM);

                OnSelectEntry(selectedEntry);
            }
            else if (input.IsMenuCancel())
            {
                SoundManager.PlaySound(SoundManager.SOUND_MENU_CANCEL);

                OnCancel();
            }
        }
示例#2
0
        /// <summary>
        /// Responds to user input, changing the selected entry and accepting
        /// or cancelling the menu.
        /// </summary>
        public override void HandleInput(InputManager input)
        {
            // Only if we are currently answering
            if (status == ChatStatus.PlayerAnswer)
            {
                // Move to the previous menu entry?
                if (input.IsMenuUp())
                {
                    selectedEntry--;

                    if (selectedEntry < 0)
                        selectedEntry = answers.Count - 1;
                }

                // Move to the next menu entry?
                if (input.IsMenuDown())
                {
                    selectedEntry++;

                    if (selectedEntry >= answers.Count)
                        selectedEntry = 0;
                }
            }

            if (input.IsMenuSelect())
                OnSelectEntry(selectedEntry);
        }