Dans chaque jeu, un développeur doit probablement gérer les entrées, que ce soit de simples événements de clavier et de souris, des événements tactiles ou quelque chose comme entrée d'accéléromètre. Cette entrée affecte directement les objets du jeu. Parfois, la même entrée peut affecter différents objets. Maintenant, je réfléchis à la façon de modéliser cela. Selon moi, il existe deux approches différentes.
Laissez l'objet de jeu le gérer lui-même, abonnez-vous aux événements et appelez ses propres méthodes. Cela a l'avantage de laisser les objets du jeu décider eux-mêmes quelles entrées provoquent quelle action. Un inconvénient semble être que le code d'entrée est altéré avec le code d'objet de jeu "de base". De plus, les objets du jeu ne connaissent pas l'état du reste du jeu et ne doivent parfois pas agir sur les événements d'entrée. Cela ne semble pas correct.
Demandez à un contrôleur général des entrées de s'occuper de toutes les entrées et de décider qui peut gérer quel événement. Cela semble mieux séparer les préoccupations, mais couple étroitement la classe de contrôleur d'entrée aux objets de jeu. Il a en quelque sorte besoin de savoir qui veut recevoir quel événement et dans quel état. Cela ne semble pas correct non plus.
Quelles stratégies utilisez-vous pour gérer cela?