トピック
HIBIKI 130216

スプライトの当たり判定のマスクについて教えて下さい

スプライトの当たり判定のマスクとはどういったものですか? 使い方や便利な場面なども教えて頂けると嬉しいです。
4そうだね
プレイ済み
返信[1]
親投稿
まげ MAGE_LOVEMARINE
大ざっぱに言えば、SPCOLでマスクを0に指定したスプライトは、SPHITSPなどの衝突判定で認識されなくなります。ただし、0に指定したスプライト同士なら衝突します。(厳密に言うとANDなども関わるので、ちょっとややこしい話になります)ちなみにSPCOLでマスク指定を略すと、自動的に&HFFFFFFFFが指定されます。 例えば、弾に当たった敵のスプライトを爆発に変えた時にマスクも0にしないと、弾がそのまま爆発に衝突してしまい、いつまでも爆発してしまいます。
1そうだね
プレイ済み
返信[2]
親投稿
ΖΕΧ ZEX256
SPCOL|スプライトの衝突判定のルールを設定・取得 - プチコン.NET http://petitcom.net/3gou/manual/spcol マスク 衝突判定を行うものと行わないもの(ゲームでいう味方同士・敵同士・敵の弾と敵など)のグループ分けをします。 グループ分けには&H00000000~FFFFFFFFの32bitの数値を使用し、ANDで判定して結果が0の場合は衝突していないと判断されます。 マスク未設定時の初期値は-1(&HFFFFFFFF、どれにも衝突とみなす)です。
0そうだね
プレイ済み
返信[3]
親投稿
ΖΕΧ ZEX256
ANDについては↓この辺参照してくれ 論理演算子|&& || AND OR XOR ! - プチコン.NET http://petitcom.net/3gou/manual/_ronrienzanshi
0そうだね
プレイ済み
返信[4]
親投稿
皆さんの説明通りですが、まげさんのマスクを0に指定したもの同士はぶつかるというのは知りませんでした。原理的にはマスク0にスプライトはどれともぶつからないが正解な気がするんですが、そういう特別な仕様なのかな???
0そうだね
プレイ済み
返信[5]
親投稿
みむ*mim hidemimtp
いや、マスク0は衝突しないでしょう。 SPSET 0,0 SPSET 1,1 SPCOL 0,,0 SPCOL 1,,0 ?SPHITSP(0) これは -1 を返します。 省略値は全当たり(&HFFFFFFFF)
0そうだね
プレイ済み
返信[6]
親投稿
みむさんの投稿を見て気になったので僕も調べてみましたが、確かに0は衝突しなそうですね。ということは、まげさんの勘違いなのかな??? そういえば前はデフォルトが0で0指定は全て当たってしまうみたいな不具合(仕様?)があったような記憶もあります。その辺はバージョンアップで変わったりもしてるし、僕は最近はプチコンでコードを書くことが減ってしまったので、その辺に仕様の変化や新しく増えた命令には疎い部分もあります…
0そうだね
プレイ済み
返信[7]
親投稿
まげ MAGE_LOVEMARINE
0衝突は勘違いでした。失礼しました。
0そうだね
プレイ済み
返信[8]
親投稿
こう subwars
弾幕ゲーでこれをしないと 掠っただけで即死とかいう イライラゲーになる
0そうだね
プレイ済み
返信[9]
親投稿
HIBIKI 130216
皆さんわかりやすい解説をありがとうございました!今後の活動に活かさせていただきます!
0そうだね
プレイ済み