Degryll / ZBE

A nice & cool game engine
Apache License 2.0
3 stars 0 forks source link

Mejoras del sistema de entrada. #107

Closed Ludovicio closed 6 years ago

Ludovicio commented 6 years ago

Actualmente los manejadores de entrada reciben, únicamente, el estado de la entrada a la que están asociados, pero no cuál es esa entrada. Por ejemplo: Asocias un handler a la tecla "A" y, cada vez que presionas o sueltas esta tecla, el handler recibe un "1.0" o un "0.0".

Esto se ha hecho así porque, en principio, tu ya sabes a que tecla has asociado un handler y no necesita este dato.

¿Qué pasa si quisieses asociar el mismo handler a dos teclas? Podría hacerse, pero el handler no tendría forma de distinguir desde cual de las dos teclas ha sido llamado.

Esto supone un problema, por ejemplo, si queremos crear un handler que reasigne los botones del juego.

Para conseguir esta funcionalidad, los InputHandler deben recibir el estado y la tecla (o entrada) desde la que han sido llamados.

Además, parece que atender a cualquier tecla (o grupo de teclas) puede resultar útil.

Actualmente en el InputEventGenerator se tiene una colección de InputHandler. Cuando se recibe, si hay un handler asociado a esta entrada, se ejecuta ese handler.

Se propone buscar una forma de crear grupos de teclas y asociar a estos un handler común. Esto solo tendría sentido si se encuentra una forma de consultar este grupo más eficiente que consultar el propio mapa.

En caso contrario, se deberán crear herramientas que automaticen la inclusión de un mismo handler sobre una colleción de entradas.

Ludovicio commented 6 years ago

Se añade soporte para implemtar múltiples formas de manejar los InputStatus a traves de la interfaz "InputStatusManager"