いくつかのプロジェクトで使用するために、この 2D タイル ベースのゲーム エンジンを作成してきました。
主にで構成される「ScreenObject」というクラスがあります
Dictionary<Point, Tile>
ポイント キーは、画面上のどこにタイルをレンダリングするかを示すためのものであり、タイルにはそのポイントに描画される 1 つ以上のテクスチャが含まれています。この ScreenObject は、タイルが変更、削除、追加される場所です。
私が行ったテストでタイルを描画する最初の方法は、ScreenObject を繰り返し処理し、各クワッドを各位置に個別に描画することでした。私が読んだことから、これはリソースの大幅な浪費です。テストではそれほど遅くはありませんでしたが、アニメーション クラスとエフェクト クラスを完成させた後は、非常に遅くなることは間違いありません。
最後にもう 1 つ、よろしければ.. 前に述べたように、Tile クラスには、画面上の Point 位置に描画される複数のテクスチャを含めることができます。
ここで、おそらく 2 つの選択肢があると思います。描画するテクスチャごとにその場所にクワッドを追加するか、何らかの方法で..同じクワッドに複数のテクスチャを使用します (可能な場合)。各タイルにテクスチャが 1 つしか含まれていない場合でも、画面に描画されるクワッドは 64 個になります。ほとんどのタイルには 2 ~ 5 個のテクスチャが含まれるため、この方法ではクワッドの総数が劇的に増加します。新しいテクスチャごとにクワッドを追加することは可能でしょうか?それとも、これを行うためのより良い方法を無視していますか?