HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1229
ZAPhgimg3の2Dスプライトの表示優先順位5解決


ZAP

リンク

2012/12/29(Sat) 17:44:52|NO.51544

hgimg3の2Dスプライトを扱うに際して、

HSPに同梱のhgimg3.txtのposの説明では、

「2Dオブジェクトの場合は、(X,Y)が座標に使用され、
Zは優先度(0.0〜1.0)として扱われます。」

とありますが、どうもsetposでZ値を設定しても
優先順位が変わらないのですが、やり方がまちがっているのでしょうか?

過去の記事で、Z値による優先順位変更は実装されていないというのを
見かけましたが、やはりまだ未実装のままなのでしょうか?

もしZ値による2Dスプライトの優先順位変更が機能していないとした場合、
先に登録した2Dスプライトを後から登録したものより前面に表示する
ようにしたい場合、どのような方法が考えられるでしょうか?



この記事に返信する


@key

リンク

2012/12/30(Sun) 01:18:41|NO.51554

先に登録した2Dスプライトより後から登録したものの優先度が下でなくてはうまく表示されません
先の方の優先度を1にし、後から登録するものは0にすればうまくいくはずです



ZAP

リンク

2012/12/30(Sun) 01:45:42|NO.51556

>@keyさん
優先度を設定する箇所は

setpos id,x,y,z

のzの値ですよね? 先に登録したスプライトのZ座標に1を設定してみたのですが、 やはり後から登録したスプライトが手前に表示されます。 フレームごとにリアルタイムで設定しないといけないのかと思い、 メインループ中で毎フレームごとに設定しても同じでした。 ちなみにHSPのバージョンは3.32βです。



おにたま(管理人)

リンク

2012/12/30(Sun) 02:29:37|NO.51557

HGIMG3のご利用ありがとうございます。
残念ながら2DのZ値によるソートは現在実装されていません。
2D表示に関しては、OBJ_FIRST(先に描画)、OBJ_LATE(後に描画)のフラグを使用できますので、そちらもお試し頂ければと思います。



暇人

リンク

2012/12/30(Sun) 03:07:10|NO.51558

>Z値による優先順位変更は実装されていないというのを
本当は実装されてたけど何故か廃止された
高速化や実装に問題が出た為かも知れないが、もう少し使ってる人の事も考えて修正して欲しかった・・・

2005/12/22 ( Ver3.1β1 )

2DオブジェクトのZバッファ更新が無効になるように修正。

この一文だけで2Dスプライトの優先度設定が無くなったと分かる人は少ない気がする
txt側は今でも設定できるように書いてあるし・・・



>先に登録した2Dスプライトを後から登録したものより前面に表示する
出現順を管理保存して2Dオブジェクトの追加があったら全ての2Dオブジェクトを設定し直す
event設定が使えなくなったりして決まったアニメーションも自分で処理する必要出てくるけど・・・
もうhgrotateで良い気がしてくる・・・


使い方によってはaddplateで2Dスプライトの代用が出来る(3Dプラグイン上で疑似3Dをやるようなもんだけど・・・)
カメラ回転とかコリジョンとか必要だと面倒になるが・・・



ZAP

リンク

2012/12/30(Sun) 08:51:56|NO.51560

やはりZフラグは未実装だったのですね。
スッキリしました。

すべての3Dモデルより前面に表示したかったのでhgrotateでもよかったのですが、
おなじゲーム画面内に存在するキャラクターについて3D座標と2D座標が混在し、
当たり判定の管理も煩雑になるので、スプライトを使いたかったのです。

暇人さんのおっしゃるようにプレートと使い分けて対処したいと思います。

ありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.