TileMapLayerで、Y座標がマイナス(0より小さい負の値)の範囲では、表示順が逆になってしまう

 tilemaplayerでは、例えば、地面のタイルの絵よりも、操作しているキャラクターを表に表示したい、一方、建物の高い箇所は、キャラクターを裏に表示したい、といった事があります。

これは、シーン内のタイルとキャラクタの順序で決められます。


・タイルの絵であるlayer1より、キャラクタ(棒人間)のplayer、の方が下。

この場合、playerが表に表示されます。



しかし、シーンの原点より上、Y座標がマイナスの値になる位置へ行くと、以下のように、タイルの裏に隠れてしまいます。


・少し上にキャラクタを移動すると、タイルの裏に隠れてしまう。

・タイルを非表示にすると、キャラクタがいることがわかる。


・Y座標がゼロの位置は、以下ピンク色の線。この線より上にキャラクタが入ると、表示順が逆になり、後ろに隠れてしまう。


これはおそらく、インスペクタ>canvasitem>ordering>Y sort enabled、のパラメータのために、Y座標位置も含めて処理する仕組みになっているのかもしれず、それが原因かもしれません。

座標の負の値を考慮しておらず、絶対値で判別してしまい、結果、逆になってしまうのだと思います。


とりあえず、マップを作る際は、Y座標の値がプラスである範囲内のみで作らないといけないのかもしれません・・・





コメント

このブログの人気の投稿

プラグイン(godot sqlite)を含めてエクスポートすると、データの更新ができない問題

初心者に良い本は? → 『 ゆるっとはじめるGodot Engine ゲームプログラミング 』

他シーンからシグナルを送る方法