コード例 #1
0
        /// <summary>
        /// Reacciona al input del usuario, cambiando entre Entries y aceptando
        /// o cancelando el menú.
        /// </summary>
        /// <param name="input">Input de los controles</param>
        public override void HandleInput(InputState input)
        {
            //Se mueve al entry superior (o al último)
            if (input.IsMenuUp(ControllingPlayer))
            {
                selectedEntry--;

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

            //Se mueve al siguiente entry o al primero
            if (input.IsMenuDown(ControllingPlayer))
            {
                selectedEntry++;

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

            /* Acepta o cancela el menú. playerIndex guarda quien es el player que ha hecho la acción.
             * De esta forma es posible saber quien gatillo el evento.
             */
            PlayerIndex playerIndex;

            if (input.IsMenuSelect(ControllingPlayer, out playerIndex))
            {
                OnSelectEntry(selectedEntry, playerIndex);
            }
            else if (input.IsMenuCancel(ControllingPlayer, out playerIndex))
            {
                OnCancel(playerIndex);
            }
        }
コード例 #2
0
 /// <summary>
 /// Permite que las Scren puedan usar diferentes input.
 /// Este metodo debe ser desactivado para la screen cuando no esté activada(IsActive == false)
 /// </summary>
 /// <param name="input">Clase input que permite mapear el teclado.</param>
 public virtual void HandleInput(InputState input)
 {
 }
コード例 #3
0
        /// <summary>
        /// BUG: Al cambiar de goblin este queda en su último estado.
        /// </summary>
        /// <param name="input"></param>
        public override void HandleInput(InputState input)
        {
            if (IsActive) {
                if (input.IsSpace(null)) {
                    HandleSelectGoblin();
                }

                if (input.IsEscape(null)) {
                    PopupScreen salir = new PopupScreen("Está seguro que quiere salir? o.ó ");

                    salir.Accepted += end_Accepted;

                    ScreenManagerController.AddScreen(salir, null);
                }

                foreach (Goblin goblin in goblins) {
                    if (goblin.ID == selectedGoblin)
                        if (goblin.EstadoPersonaje != EstadoPersonaje.Muerto)
                            goblin.HandleInput(input);
                        else {
                            HandleSelectGoblin();
                        }
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// Como es una Screen puede responder a los controles de los usuarios, este
        /// metodo permite la detección del teclado.
        /// </summary>
        /// <param name="input">Input que tiene el mapeo del teclado.</param>
        public override void HandleInput(InputState input)
        {
            PlayerIndex playerIndex;

            /* Pasamos el ControllingPlauer como nulo si queremos que cualquier player
             * realice acciones, o con un valor para el plauer que deseamos que
             * realice la acción.
             * Luego playerIndex guardará la información de quien hizo la acción.
             */
            if (input.IsMenuSelect(ControllingPlayer, out playerIndex))
            {
                // Levanta el evento Accepted y se sale del Popup
                if (Accepted != null)
                    Accepted(this, new PlayerIndexEventArgs(playerIndex));

                ExitScreen();
            }
            else if (input.IsMenuCancel(ControllingPlayer, out playerIndex))
            {
                // Levanta el evento Cancelled y se sale del Popup
                if (Cancelled != null)
                    Cancelled(this, new PlayerIndexEventArgs(playerIndex));

                ExitScreen();
            }
        }