私は純粋なJavaで2Dトップダウンゲームに取り組んでいます。これまで、Minecraftのようにタイル(およびエンティティ)のチャンクで動作するノイズマッピングシステムがあります。
int[s * s]
タイルを格納する方法は、配列を作成することです。ここs
で、はチャンクの側面のサイズ(タイル単位)です。次に、整数でインデックス付けされた、ゲームで可能な各タイルを含むタイルの静的配列があります。int[s * s]
これらは、各チャンクに格納されている整数です。ここで、非表示のスポーンタイル、壁、木、トランジションタイルなどのタイルをオーバーレイできるようにします(草が砂に変わるときのように、砂の上に草の境界があり、新しいタイルになります)。
問題は、チャンクの各座標に格納できる整数は1つだけであるということです。別の方法は、タイルの実際のインスタンスをチャンク内に配置し、オーバーレイするタイルがその真下のタイル(スタックなど)を指すようにすることですが、これは一種の悪いアプローチだと思います。私がテストした別のアプローチは、タイルのリストの配列を作成することでしたが、これも非常に悪いことでした。
これを達成するための良い方法はどれですか?