Pensando en un juego común, no importa el tipo de juego, es muy probable que necesitemos algún tipo de cámara. Por ejemplo:
- Cámara de depuración: controlada por teclado y mouse, con eso podemos movernos en cualquier lugar de nuestra escena.
- Cámara con secuencia de comandos: con eso podemos indicarle a la cámara que se mueva, siguiendo un camino determinado.
- Cámara de jugador
- ...
Cada uno de estos tipos de cámaras tiene su propia función de actualización. El sistema más fácil (y malo) es tener una clase de administrador de cámara con una función de actualización genérica y funciones de actualización especializadas para cada tipo de cámara. Dentro de la función de actualización genérica tenemos una declaración de cambio que, según el tipo de cámara, llama a la función de actualización adecuada.
En lugar de esto, he pensado en otro enfoque: patrón de estrategia. Movemos el comportamiento de cada cámara (método de actualización) en una clase apropiada que implemente una interfaz común. En el administrador de cámara tenemos un miembro para esa interfaz, y podemos configurar dinámicamente cualquier comportamiento que queramos.
¿Qué piensas sobre eso? ¿Qué otros sistemas me sugieres? Gracias.
Información adicional: existe la posibilidad real de que necesite más de una cámara activa, por ejemplo, para reflexiones. En resumen, debo tener en cuenta también eso.