Probablemente en cada juego un desarrollador tiene que lidiar de alguna manera con la entrada, ya sean simples eventos de teclado y mouse, eventos táctiles o algo así como entrada de acelerómetro. Esta entrada directamente de efectos indirectos objetos en el juego. A veces, la misma entrada puede afectar diferentes objetos. Ahora he estado pensando en cómo modelar esto. A mi modo de ver, hay dos enfoques diferentes.
Deje que el objeto del juego lo maneje, suscríbase a los eventos y llame a sus propios métodos. Esto tiene la ventaja de dejar que los objetos del juego decidan qué entradas causan qué acción. Una desventaja parece ser que el código de entrada se destruye con el código objeto del juego "central". Además, los objetos del juego desconocen el estado del resto del juego y, a veces, tal vez no deberían actuar sobre los eventos de entrada. Esto no parece correcto.
Haga que un controlador de entrada general se encargue de todas las entradas y tome decisiones sobre quién puede manejar qué evento. Esto parece separar mejor las preocupaciones, pero combina estrechamente la clase de controlador de entrada con los objetos del juego. De alguna manera necesita saber quién quiere recibir qué evento y en qué estado. Esto tampoco parece correcto.
¿Qué estrategias estás usando para manejar esto?