C'est une question de conception ... Je suis sûr que cela pourrait être plus généralisé, mais j'ai du mal avec ça. Je m'interroge sur la conception des interactions d'objets de jeu - voici mon exemple (puzzle-plateforme 2D).
Supposons que le joueur essaie de progresser à travers un niveau. Il existe de nombreuses lumières qui peuvent être dirigées dans différentes directions. Voici un exemple de la façon dont ces objets lumineux pourraient interagir ...
- Une lumière projette une plateforme qui permet au joueur de franchir un espace
- Une lumière diminue les coefficients de frottement de tout ce qu'elle touche, une autre l'augmente
- Une lumière annule les effets de toutes les lumières, ce qui ferait disparaître la plate-forme pendant que cette lumière est allumée et annulerait les modificateurs de friction
- Etc...
Quelle est la meilleure façon d'aborder ce problème lors de l'utilisation d'une architecture de composants? Les composants de chaque objet majeur semblent évidents, ainsi qu'une manière claire de définir leurs effets sur l'environnement. Une classe pour "résoudre" l'interaction (semble que cela pourrait devenir un gâchis rapidement)? Une certaine utilisation du motif décorateur pour créer des objets combinés pour ceux qui interagissent à un moment donné? Une structure de données qui s'y prête?
Aussi, connecter l'audio à ces interactions? Il semble que la connexion audio au système soit comme la connexion de toute autre propriété, comme la visibilité ou le mouvement / collision d'un joueur.
De toute évidence, à mesure que de nouveaux composants sont ajoutés, il serait bien qu'il y ait un système robuste capable de gérer de nouveaux composants avec peu de modifications, mais je ne sais pas comment procéder pour le concevoir.
Autres informations: Le moteur que j'utilise est un moteur XNA appelé IceCream .