En pensant à un jeu commun, peu importe le type de jeu, il est très probable que nous ayons besoin d'un type de caméra. Par exemple:
- Caméra de débogage: contrôlée par le clavier et la souris, avec laquelle nous pouvons nous déplacer à n'importe quel endroit de notre scène.
- Caméra scriptée: avec cela, nous pouvons demander à la caméra de se déplacer, en suivant un chemin déterminé.
- Caméra du joueur.
- ...
Chacun de ces types de caméras possède sa propre fonction de mise à jour. Le système le plus simple (et le plus mauvais) consiste à avoir une classe de gestionnaire de caméras avec une fonction de mise à jour générique et des fonctions de mise à jour spécialisées pour chaque type de caméra. À l'intérieur de la fonction de mise à jour générique, nous avons une instruction switch qui, en fonction du type de caméra, appelle la fonction de mise à jour appropriée.
Au lieu de cela, j'ai pensé à une autre approche: le modèle de stratégie. Nous déplaçons chaque comportement de caméra (méthode de mise à jour) dans une classe appropriée qui implémente une interface commune. Dans le gestionnaire de caméras, nous avons un membre de cette interface, et nous pouvons définir de manière dynamique tout comportement que nous voulons.
Qu'est ce que tu penses de ça? Quels autres systèmes me proposez-vous? Merci.
Informations supplémentaires: il existe une possibilité réelle d'avoir besoin de plusieurs caméras actives, par exemple pour les réflexions. Bref, je dois aussi en tenir compte.