オブジェクトの一部が十分に長く、一方の端がもう一方の端とは異なる深さになる可能性がある場合、各オブジェクトの単一x
の値に基づいてシーンを並べ替えることはできないと思います。y
たとえば、写真の茶色の椅子を1マス左下(青い椅子と長いソファの間のマス)に移動した場合のレンダリングの処理方法を検討してください。ソファの後ろにある赤いテーブルよりもシーンの奥深くにありますが、ソファの上にレンダリングする必要があり、テーブルの上に配置する必要があります。
私は2つの簡単な解決策があると思います:
- 大きなオブジェクトに対して1種類のオーバーラップのみを使用してレベルを設計します。たとえば、オブジェクトの深さが最も近いコーナーに基づくように指定できます。これにより、最も遠いビットの前に物を置かないようにする必要があります(オブジェクトの上にレンダリングされるため)。または、現在のコード(深さのために最も遠いコーナーを使用しているようです)に固執し、近くの部分の後ろに何かを置くことを避けることができます。ただし、キャラクターやその他のオブジェクトが動き回る場合は、まだ問題が発生する可能性があります。デザインに注意すれば、面倒なタイルにアクセスできなくなる可能性がありますが、制限が厳しすぎる場合もあります。
- 大きなオブジェクトを、独自の深さを持つ小さなオブジェクトに分割します。おそらく、1x1のピースまで下げたいと思うでしょう。それぞれのピースには、明確な深さがあります。コード内の大きなオブジェクトを小さなピースの非表示のコンテナーとして保持するか、完全に削除するかを選択できます。どちらかを選択すると、ロードしてさまざまなビットとの対話が容易になります。
1x1
大きなオブジェクトをモジュール化できるので、大きなオブジェクトをサイズに分割することもできます。つまり1x1
、さまざまな組み合わせでピースを組み合わせることで、さまざまなサイズのオブジェクトを作成できます。2x1
たとえば、画像内のテーブルを垂直方向に半分にカット1x1
し、それらの間に収まる中央のタイルを作成した場合、中央のタイルを繰り返す回数に応じて、デザインを3x1
またはに伸ばすことができます。10x1
適度な量のアートだけでタイルグラフィックスの見栄えを良くする方法は他にもたくさんあります。