C ++에 기본 2D 타워 방어 게임이 있습니다.
각 맵은 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 () 함수에 인수로 전달되어야합니까? 아니면 세계적으로 선언? 아니면 완전히 누락 된 다른 솔루션이 있습니까?
여러 클래스가 동일한 데이터에 액세스해야하는 경우 데이터를 어디에 선언해야합니까?