私のゲームは巨大な世界であり、最終的には無限大になります。 と私はすべてのゲームオブジェクトをマップの正方形のセクションに保存します。これは、プレイヤーがそのエリアにいるときだけオブジェクトをチェック/レンダーすることです。 私の目的に適したデータ構造ソリューションは何でしょうか? (ハッシュセットの3次元配列リスト)
私が「3D」hashsets
のarraylist
、「行」である第1のリスト、「列」とhashsets
のすべての異なるタイプのためのリストである第3のリストである第2のリストを使用していますこれを達成するために異なるゲームオブジェクト。
私はもともと、ハッシュセットがジェネリッククラスである2dのarraylistしか持っていなかったので、正しい順序でオブジェクトをレンダー/ティックするために、instanceof
とし、それをそれぞれの一時リストに追加しました。これは非常に遅かったです。
私は、多次元のリストが欲求不満であると聞いてきました。このすべてを達成するには、よりよい方法はありますか?木など?彼らはサイズが大きくなる必要があるので、私は通常の配列を使用することはできません。
私はあなたの要件を十分に理解していませんが、おそらくそれは配列のgrifを使用するのに役立ちますか?現在の配列では不十分な場合は、その隣に別の配列を追加します。 (リストのような)いくつかの拡張可能な外部構造のすべてのarayを管理します。編集:考えて、 'ArrayList'あなたを助けるかもしれない。自動的に拡大し、内部的に配列を使用します。 –
私は何らかの並べ替えや 'ArrayList'を言っていますが、ゲーム/あなたが必要とするものについてもっと知ることなく、本当にあなたに品質のアドバイスを与える方法はありません。 – Turtle
@Turtleゲームについてもっと必要なことはありません。プレーヤがその中にいるときだけレンダリングが必要なマップのセクション、つまり多次元リスト。特定のものが互いにレンダリングする必要があるので、セクションの「ただ1つ」の「HashSet」を持つことはできません(タイルは他のものの前にレンダリングする必要があります)。私は、ハッシュセットの3次元配列のリストがあまりにも単純すぎて、別のデータ構造でより簡単に達成できる何かのために複雑すぎると思っています。 –