Siendo francos, se ha dejado de lado el sistema CSystem_Shader_Manager porque no hay muchas ganas de seguir trabajando en
el. Más adelante lo arreglaremos y lo perfeccionaremos.
Se ha creado el cuerpo de la clase CSystem_InputUser para administrar la entrada del usuario de una manera cómoda y
centralizada.
Se han creado varias funciones para el sistema CSystem_UserInput

- Básicamente, se han creado funciones (y atributos) para controlar la entrada del usuario.
  - De una manera sencilla, se pueden gestionar los eventos de teclado (de momento).
Se han realizado modificaciones varias con respecto a la entrada de teclado:

- Se han organizado funciones genéricas en _globals.h para strings.
- Se han definido variables de juego para almacenar teclas (bindings).
- Se han creado atributos en la clase CEngine para almacenar los argumentos o parámetros del programa.
- Se han actualizado los ejemplos de la carpeta user para que funcionen correctamente con el nuevo sistema de gestión de entradas.
- Por supuesto, se han definido varias funciones para el sistema CSystem_UserInput.
Cambios generales en el proyecto:

- Se han cambiado algunos detalles de los ejemplos (mayor sencillez).
- Se ha corregido un fallo por el que una cámara podia apuntar a un objeto (mediante un puntero CGameObject*) que podría no existir. Para ello, ahora se guardará el nombre del
objetivo (string) y se comprobará si existe preguntándole al Manager. Los objetos no registrados en el Manager, de momento, no pueden ser apuntados.
- Se han mejorado las funciones del sistema CSystem_UserInput.
Añadidos en la clase CSystem_UserInput

- Se ha creado una clase llamada CMouse para administrar de manera cómoda e intuitiva los eventos procedentes del ratón.
Definidas funciones para la clase CMouse de CSystem_UserInput para gestionar los eventos del ratón.
Adenás, se han arreglado algunos fallos de compilación (CComponent_Camera).
Se ha terminado de escribir el código (al menos, el más importante) de la interfaz de entrada de usuarios (sistema CSystem_UserInput). Lo próximo debería ser añadir control por
joystick, soportado correctamente por SDL2.
Realizados cambios menores sobre los ejemplos de usuario y cambiados/añadidos algunos comandos simples al sistema CSystem_Debug.
Se ha añadido una nueva función al sistema CSystem_GameObject_Manager para buscar objetos mediante un prefijo ("firework"->"firework1", "firework2"...) llamada "SearchGameObjects".
Dicha función devuelve un vector con punteros a objetos del tipo vector<CGameObject*>. Si no se encuentra ninguno, dicho vector será de tamaño 0.

Además, se ha añadido una función al sistema CSystem_Debug para realizar búsquedas de objetos desde la consola.
Se ha definido la interfaz "CJoystick" para gestionar los joysticks con respecto a "ejes", "bolas" o "botones".
Bastantes cambios con respecto al sistema de entrada "CSystem_UserInput":

- Se han añadido funciones al sistema CSystem_Debug para poder depurar el estado de los mandos (básicamente, ver la lita de joysticks disponibles).
- Se han definido las funciones para hacer funcionar de manera correcta la gestión de los joysticks (bueno, correcta no se, pero funcional, si).
  - El sistema soportará un total de n joysticks dados por el sistema operativo, que tendrán una serie de ejes (axis), bolas (balls), crucetas (povs) o botones (buttons).
  - Se ha implementado un sistema para detectar y gestionar la conexión y desconexión de joysticks en tiempo real al sistema.
    - Si se detecta un nuevo joystick, o se pierde la conexión con uno, el sistema lo añadirá y quitará de manera automática.
    - Para ello, se comprueba en cada iteración el estado de cada joystick. Si uno falla, se rehace la lista de joysticks de 0 para evitar problemas.
      - Por desgracia, la función SDL_NumJoysticks tenía fallos de sincronización (tardaba tiempo en actualizar el nº de joysticks), por lo que he pusto un temporizador para rehacer
la lista de joysticks una vez pasados 1000 ms (#define en _input.h).
    - La lista nueva generada puede ser distinta a la anterior, cosa que puede influenciar en el usuario programador.