Ho un gioco 2D di difesa della torre di base in C ++.
Ogni mappa è una classe separata che eredita da GameState. La mappa delega la logica e il codice di disegno a ciascun oggetto nel gioco e imposta i dati come il percorso della mappa. Nello pseudo-codice la sezione logica potrebbe assomigliare a questa:
update():
for each creep in creeps:
creep.update()
for each tower in towers:
tower.update()
for each missile in missiles:
missile.update()
Gli oggetti (brividi, torri e missili) sono memorizzati in vettori di puntatori. Le torri devono avere accesso al vettore dei brividi e al vettore dei missili per creare nuovi missili e identificare obiettivi.
La domanda è: dove devo dichiarare i vettori? Dovrebbero essere membri della classe Map e passati come argomenti alla funzione tower.update ()? O dichiarato a livello globale? O ci sono altre soluzioni che mi mancano del tutto?
Quando diverse classi devono accedere agli stessi dati, dove devono essere dichiarati i dati?