/// <summary>
        /// Responde ao input, aceitando ou cancelando a mensagem da janela
        /// </summary>
        public override void HandleInput(InputState input)
        {
            PlayerIndex playerIndex;

            // Se o 'ESC' for selecionado
            if (input.IsMenuSelect(this.ControllingPlayer, out playerIndex))
            {
                // Se o evento for diferente de nulo
                if (this.Accepted != null)
                {
                    this.Accepted(this, new PlayerIndexEventArgs(playerIndex));
                }
                // Chama saída do game
                this.ExitScreen();
            }
            else if (input.IsMenuCancel(this.ControllingPlayer, out playerIndex))
            {
                // Se o evento for diferente de nulo
                if (this.Cancelled != null)
                {
                    this.Cancelled(this, new PlayerIndexEventArgs(playerIndex));
                }
                // Chama saída da tela
                this.ExitScreen();
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Verifica a entrada do teclado
        /// </summary>
        public override void HandleInput(InputState inputState)
        {
            // Se mover para entrada(item) anterior
            if (inputState.IsMenuUp(this.ControllingPlayer))
            {
                // Decrementa para subir pelos itens
                this.selectedEntry--;

                // Se for menor que zera
                if (this.selectedEntry < 0)
                {
                    // Vai para o último item do menu
                    this.selectedEntry = this.menuEntries.Count - 1;
                }
            }

            // Se mover para entrada(item) anterior
            if (inputState.IsMenuDown(this.ControllingPlayer))
            {
                // Incrementa para descer pelos itens
                this.selectedEntry++;

                // Se for maior que a quantidade de itens do menu
                if (this.selectedEntry >= this.menuEntries.Count)
                {
                    // Vai para o primeiro item do menu
                    this.selectedEntry = 0;
                }
            }

            // Controlador nulo inicialmente, que será passado através de 'OnSelectItem' e 'OnCancel'
            PlayerIndex playerIndex;

            // Se algum item do menu foi selecionado
            if (inputState.IsMenuSelect(ControllingPlayer, out playerIndex))
            {
                OnSelectEntry(selectedEntry, playerIndex);
            }
            // Senão...
            else if (inputState.IsMenuCancel(ControllingPlayer, out playerIndex))
            {
                OnCancel(playerIndex);
            }
        }