性能上の理由から、私は10,000個のタイルで分割されたゲームマップを持っています。各タイルにはエンティティの配列があります。このようにして、タイルに出入りするエンティティは、対応するアレイ内に/から除去される。一方ループ:10,000個の配列(時間を無駄にする)と1つのグローバル配列(メモリを無駄にする)
、すべてエンティティごとのxミリ秒更新に万のアレイ上のループを回避するために、配列を処理するための最も効率的な方法は何ですか?
タイル配列以外に、すべてのタイルのすべてのエンティティを含むグローバル配列を1つ作成する必要がありますか?メモリを浪費していませんか?
あなたのモデルをうまく取得できませんでした。オブザーバーパターンを設定して、エンティティごとに状態の変更を公開したり、タイルをサブスクライブしたりすることはできません。 [Observer and PubSub pattern](https://addyosmani.com/resources/essentialjsdesignpatterns/book/#observerpatternjavascript)はあなたが探しているものです。 xミリ秒ごとにすべての10Kタイルをチェックするのはひどい考えです。 – Redu
私はあなたが行列ゾーニングpaternを使うべきだと思います。例えば、ゾーニングに合流する500タイルのブロック。したがって、500タイルの配列要素が200個あります。そうすることで、ゾーン参照が渡され、サブ配列をループします。 – cpugourou
はい、エンティティのないタイルがたくさんある場合は、ループするすべてのエンティティを含むグローバル配列がすべてのタイルをループするより効率的です。 – Bergi