maki
02ee30389e
2021/01/07 (木) 15:11:51
自分も同じ環境(IDE v2.3.1.542、Runtime v2.3.1.409)で試してみましたが再現しませんでした。
ちなみに、room内にBackground layerがある場合、オブジェクトのdepthの値がBackground layerのdepthの値より大きくなると、オブジェクトはBackground layerで上書きされてしまうため表示されません。
新規プロジェクトの場合、Background layerのデフォルトのdepthは100なので、SUPPYさんの投稿の後半で書かれているような現象が起きます。
これはバグではなく仕様だと思います。
Background layerやAsset layer、Tile layerを使用している場合、念のためそれらのdepthの値を確認してみてください。
GMS1の頃はdepth = -y;
のテクニックは広く使われていたようですが、GMS2になりレイヤーの機能が導入されてからは、上で述べたようにdepth = -y;
を使っても思い通りの結果が得られない場合があります。
ねこたみんさんの投稿で書かれているようにdepth = room_height - y;
のような方法でもこの問題は解決できますが、room外にまでプレイヤーを移動できるようにしたい場合にはdepth = room_height - y;
の方法だと上で述べたのと同じ問題が発生します。
そのような場合は、次の動画で紹介されているような手法を使う必要があります。
depth = -y;
に比べるとかなりコード量は増えますが、レイヤー機能との両立が可能です。
通報 ...
Backgroundは知らないことだらけなのでとても勉強になります。
まさかそんな仕様があったなんて。ありがとうございます。