/// <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(); } }
/// <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); } }