Je travaille sur un jeu en 2D où vous pouvez monter, descendre, aller à gauche et à droite. J'ai essentiellement deux objets de logique de jeu:
- Joueur: A une position par rapport au monde
- Monde: Dessine la carte et le joueur
Jusqu'à présent, Monde dépend du joueur (c.-à-d. Qu'il y a une référence), il a donc besoin de sa position pour déterminer où dessiner le personnage du joueur et quelle partie de la carte dessiner.
Maintenant, je veux ajouter une détection de collision pour empêcher le joueur de se déplacer à travers les murs.
Le moyen le plus simple auquel je puisse penser est de demander au joueur de demander au monde si le mouvement prévu est possible. Mais cela introduirait une dépendance circulaire entre Player et World (c’est-à-dire que chacun détient une référence à l’autre), ce qui semble mériter d’être évité. La seule façon dont je suis venu à l’esprit est de laisser le Monde déplacer le joueur , mais je trouve cela peu intuitif.
Quelle est ma meilleure option? Ou éviter une dépendance circulaire n'en vaut-il pas la peine?