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()関数に渡されるべきですか?またはグローバルに宣言されましたか?または、私が完全に欠けている他のソリューションはありますか?
複数のクラスが同じデータにアクセスする必要がある場合、データはどこで宣言する必要がありますか?