私のゲームでは、建物(家、リソースセンター)のある土地の区画があります。家のような建物には、テナント、部屋、アドオンなどがあり、これらすべての変数に基づいてシミュレーションする必要があるいくつかの値があります。
次に、AndEngineをフロントエンドのものに使用し、シミュレーション計算を実行する別のスレッドを作成します(後でこのスレッドにAIを含めることもできます)。これは、1つのスレッド全体がすべての作業を実行してブロックなどの問題を引き起こすことを防ぐためです。これにより、同時実行性と依存性の問題が発生します。
通貨の問題は、私のメインUIスレッドと計算スレッドすべてのシミュレーションオブジェクトにアクセスする場合との両方が必要です。そのため、スレッドセーフにする必要がありますが、それを可能にするためにシミュレーションオブジェクトを格納および構造化する方法がわかりません。
依存関係の問題は、計算値にするために、私の計算は、他のオブジェクトの値に依存していることです。
建物内のテナントオブジェクトを計算にリンクする最良の方法は何ですか?テナントクラスにハードコードしますか?アルゴリズムを簡単に調整できるように「ストア」アルゴリズムを実行するための良い方法は何ですか?
単純な怠惰な方法は、土地の区画(建物などを保持する)など、すべてのオブジェクトを保持するクラスにすべてをまとめることです。このクラスは、ユーザーが利用できるテクノロジーや、スプライトなどのオブジェクトプールなどのゲームの状態も保持します。しかし、これは怠惰で危険な方法ですよね?
編集: 私は依存性注入を見ていたが、それは他のオブジェクトを保持するクラスのようにどれだけうまく対処できますか?つまり、借地人と他の多くの価値を持つ建物のある土地の私の区画。AndEngineの場合も、DIは苦痛のように見えます。