Ich habe ein grundlegendes 2D-Tower-Defense-Spiel in C ++.
Jede Map ist eine eigene Klasse, die von GameState erbt. Die Karte delegiert die Logik und den Zeichencode an jedes Objekt im Spiel und legt Daten wie den Kartenpfad fest. Im Pseudocode könnte der Logikabschnitt ungefähr so aussehen:
update():
for each creep in creeps:
creep.update()
for each tower in towers:
tower.update()
for each missile in missiles:
missile.update()
Die Objekte (Creeps, Tower und Missiles) werden in Zeigervektoren gespeichert. Die Türme müssen Zugriff auf den Kriechvektor und den Raketenvektor haben, um neue Raketen zu erstellen und Ziele zu identifizieren.
Die Frage ist: Wo deklariere ich die Vektoren? Sollten sie Mitglieder der Map-Klasse sein und als Argumente an die tower.update () -Funktion übergeben werden? Oder global deklariert? Oder gibt es andere Lösungen, die mir völlig fehlen?
Wenn mehrere Klassen auf dieselben Daten zugreifen müssen, wo sollten die Daten deklariert werden?