Je suis en train de développer un jeu basé sur des sprites 2D pour Windows 7 Phone, en utilisant XNA. La formation et les didacticiels disponibles sont assez utiles, mais le problème auquel je suis confronté est que chacun d'eux aborde la conception de sa classe différemment, et le code n'est pas particulièrement bien factorisé. Par conséquent, il m'a été difficile d'acquérir une bonne compréhension des responsabilités que je devrais confier à une classe particulière.
Par exemple, je pourrais avoir une classe de sprite de base BaseSprite
qui sait se dessiner, vérifier les collisions, etc. Je pourrais alors avoir une AnimatedSprite
classe qui saurait naviguer dans sa feuille de sprite, une ExplodingSprite
classe, etc. Cette technique est illustrée dans l'exemple Space Invaders dans les documents de la session 2 de Windows 7 Phone Jumpstart .
Alternativement, je pourrais plutôt placer l'essentiel du rendu et de l'exécution de la responsabilité du jeu dans une GameScreen
classe; cette classe et ses classes dérivées se comportent davantage comme des formulaires ou des pages Web en termes de responsabilités. Les classes de sprites sont des conteneurs plus simples avec beaucoup moins de logique.
Il s'agit de la technique utilisée dans le jeu Alien Sprite du Kit de formation Windows 7 Phone et d'autres exemples de gestionnaire d'état du jeu.
Quelle est l'approche orientée objet correcte pour la conception de classes dans le développement de jeux?