Est-ce une mauvaise conception d'avoir 2 classes qui ont besoin l'une de l'autre?
C'est un peu une odeur de code , mais on peut partir avec. Si c'est le moyen le plus simple et le plus rapide de mettre votre jeu en place, foncez. Mais gardez cela à l'esprit car il y a de fortes chances que vous deviez le refactoriser à un moment donné.
Le problème avec C ++ est que les dépendances circulaires ne se compileront pas si facilement , il serait donc préférable de s'en débarrasser au lieu de passer du temps à réparer votre compilation.
Voir cette question sur SO pour quelques opinions supplémentaires.
Diriez-vous que [ma conception] est une mauvaise conception?
Non, c'est toujours mieux que de tout mettre dans une seule classe.
Ce n'est pas si génial, mais c'est en fait assez proche de la plupart des implémentations que j'ai vues. Habituellement, vous auriez une classe de gestionnaire pour les états de jeu ( méfiez-vous! ), Et une classe de rendu, et il est assez courant que ce soient des singletons. La dépendance circulaire est donc "cachée", mais elle est potentiellement là.
De plus, comme on vous l'a dit dans les commentaires, c'est un peu bizarre que les classes d'état de jeu effectuent une sorte de rendu. Ils doivent simplement contenir des informations d'état et le rendu doit être géré par un moteur de rendu ou par un composant graphique des objets de jeu eux-mêmes.
Maintenant, il pourrait y avoir le design ultime . Je suis curieux de voir si d'autres réponses apportent une bonne idée. Pourtant, vous êtes probablement celui qui peut trouver le meilleur design pour votre jeu.