У меня есть базовая 2D игра Tower Defense на C ++.
Каждая карта - это отдельный класс, который наследуется от GameState. Карта делегирует логику и код рисования каждому объекту в игре и устанавливает такие данные, как путь к карте. В псевдокоде логический раздел может выглядеть примерно так:
update():
for each creep in creeps:
creep.update()
for each tower in towers:
tower.update()
for each missile in missiles:
missile.update()
Объекты (крипы, башни и ракеты) хранятся в векторе указателей. Башни должны иметь доступ к вектору крипов и вектору ракет для создания новых ракет и определения целей.
Вопрос в том, где я объявляю векторы? Должны ли они быть членами класса Map и передаваться в качестве аргументов функции tower.update ()? Или объявлено глобально? Или есть другие решения, которые я пропускаю полностью?
Когда нескольким классам требуется доступ к одним и тем же данным, где эти данные должны быть объявлены?