J'ai un jeu de base de tour de défense 2D en C ++.
Chaque carte est une classe distincte qui hérite de GameState. La carte délègue la logique et le code de dessin à chaque objet du jeu et définit des données telles que le chemin de la carte. Dans le pseudo-code, la section logique pourrait ressembler à ceci:
update():
for each creep in creeps:
creep.update()
for each tower in towers:
tower.update()
for each missile in missiles:
missile.update()
Les objets (creeps, tours et missiles) sont stockés dans des vecteurs de pointeurs. Les tours doivent avoir accès au vecteur de fluage et au vecteur de missiles pour créer de nouveaux missiles et identifier les cibles.
La question est: où puis-je déclarer les vecteurs? Devraient-ils être membres de la classe Map et passés en tant qu'arguments à la fonction tower.update ()? Ou déclaré globalement? Ou y a-t-il d'autres solutions qui me manquent entièrement?
Lorsque plusieurs classes doivent accéder aux mêmes données, où doivent-elles être déclarées?