Mam podstawową grę obrony wieży 2D w C ++.
Każda mapa jest oddzielną klasą, która dziedziczy po GameState. Mapa deleguje logikę i kod rysunkowy do każdego obiektu w grze i ustawia dane, takie jak ścieżka mapy. W pseudokodzie sekcja logiki może wyglądać mniej więcej tak:
update():
for each creep in creeps:
creep.update()
for each tower in towers:
tower.update()
for each missile in missiles:
missile.update()
Obiekty (skrada się, wieże i pociski) są przechowywane w wektorze wskaźników. Wieże muszą mieć dostęp do wektora pełzania i wektora pocisków, aby tworzyć nowe pociski i identyfikować cele.
Pytanie brzmi: gdzie mam zadeklarować wektory? Czy powinni należeć do klasy Map i przekazywani jako argumenty do funkcji tower.update ()? Czy zadeklarowany globalnie? Czy są też inne rozwiązania, których zupełnie mi brakuje?
Kiedy kilka klas potrzebuje dostępu do tych samych danych, gdzie należy je zadeklarować?