Ejemplo n.º 1
0
        /// <summary>
        /// Maneja los eventos del tipo "en tiempo real" creando un comando e introduciendolo en la cola
        /// </summary>
        /// <param name="commands">Cola de comandos en la que se introducura el comando</param>
        /// <remarks> 
        /// Comandos por los que se pregunta si están activos en cada frame
        /// </remarks>
        public void HandleRealtimeInput(CommandQueue commands)
        {
            if (SFML.Window.Keyboard.IsKeyPressed(SFML.Window.Keyboard.Key.A))
            {
                Commands.LinealMovementCommand lmC = (Commands.LinealMovementCommand)_actionBinding[Action.MOVELEFT];
                commands.Push(lmC);
            }

            if (SFML.Window.Keyboard.IsKeyPressed(SFML.Window.Keyboard.Key.D))
            {
                Commands.LinealMovementCommand lmC = (Commands.LinealMovementCommand)_actionBinding[Action.MOVERIGHT];
                commands.Push(lmC);
            }

            //if (SFML.Window.Keyboard.IsKeyPressed(SFML.Window.Keyboard.Key.Space))
            //{
            //    Commands.FireCommand lmC = (Commands.FireCommand)_actionBinding[Action.FIRE];
            //    commands.Push(lmC);
            //}
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Maneja los eventos de teclado creando un comando e introduciendolo en la cola
 /// </summary>
 /// <param name="key">tecla pulsada</param>
 /// <param name="isPressed">Si está pulsada</param>
 /// <param name="commands">Cola de comandos en la que se introducura el comando</param>
 /// <remarks> 
 /// En C# la gestion de los eventos se realiza con eventos y delegados, por lo que aqui ya llega el evento procesado.
 /// En Java el evento llega sin ser procesado por el delegado por lo que la función debe
 /// recibir el evento y filtrarlo según lo que quiera gestionar: HandleInputEvent(SFML.Window.Event evnt, CommandQueue commands) 
 /// </remarks>
 public void HandleKeyboardEvent(SFML.Window.Keyboard.Key key, bool isPressed, CommandQueue commands)
 {
     if ( key == SFML.Window.Keyboard.Key.Space && !isPressed)
     {
         Commands.FireCommand lmC = (Commands.FireCommand)_actionBinding[Action.FIRE];
         commands.Push(lmC);
     }
 }