投稿
ひろきち henahenachoco
SPCOLについて質問です。 マスク、とはどういった機能で、どういった場面で使うものなのでしょうか? 互いのbitのAND、を文章が長くてもいいのでもう少しわかりやすく教えていただきたいです。 どなたかお分かりになる方、おられましたらお願いします。
5そうだね
プレイ済み
返信[1]
親投稿
スプライトは使ったことがないので、推測ですがHELPの文面から、衝突検出可能となったスプライト同士の2つのマスク値のAND(bit毎のAND)をとって、0であれば、衝突しなかったものとし、1のbitがあれば衝突ありと判断する。 たぶん、スルーさせたいSP同士には、同じbitが1にならないようにし、衝突させたいSP同士には同じbitに1を設定する。 このように解釈できます。なお、2進数についてまだ習っていない場合には、コメントください。
0そうだね
プレイ済み
返信[2]
親投稿
ひろきち henahenachoco
コータさん ありがとうございます。 なんとなーく、わかってきました。 32桁の2進数に0か1を入れて、同じ桁に同じ数字が入っていれば衝突する、みたいな感じでしょうか? で、マスク値が16進数になっているのは、32桁だとあまりに長いから16進数で入力してねー、って感じですかね?
1そうだね
プレイ済み
返信[3]
親投稿
たぶんそうだと思います。 数値表現形式については、10進数でも自分が最もわかりやすい形式にすれば良いと思います。
0そうだね
プレイ済み
返信[4]
親投稿
おかっぺ Japanese_WASABI
僕も使ったことが無いので、推測の域ですが・・STG等の無敵時間なんかに使えそうですね。
0そうだね
プレイ済み
返信[5]
親投稿
ひろきち henahenachoco
コータさん なるほどー! 今まさに、スプライト同士の衝突で躓いていたのですが、マスクで解決できそうです! ありがとうございます!
0そうだね
プレイ済み
返信[6]
親投稿
コータさんの言われているような感じで一応そうなんですが、そうなると本来は0に設定すると必ず1にならないので当たらないはずなのですが0だと全部に当たるんですよね。 その辺、仕様だと言われればわかりますが、説明的にはおかしいのでややっこしく感じたりします。
0そうだね
プレイ済み
返信[7]
親投稿
ひろきち henahenachoco
おかっぺさん 今ちょうど、BGの裏に隠れたスプライトとは衝突判定してほしくないなー
1そうだね
プレイ済み
返信[8]
親投稿
ひろきち henahenachoco
途中で送信してしまいました。 BGの裏に隠れたスプライトと衝突しないようにしたかったので、使えそうですね!
0そうだね
プレイ済み
返信[9]
親投稿
ひろきち henahenachoco
でんぺんさん ちょっとわかりづらいですね。 単純に、違う数字だと当たりませんよー、ってことではないのですか? この考え方だと、想定していない方に判定しちゃうケースもあるってことでしょうか?
0そうだね
プレイ済み
返信[10]
親投稿
でんぺんさんへ mkIIの説明書では、グループ(8ビット)という名前で、各ビットに プレイヤー、プレイヤーの弾、エフェクト、アイテム、敵、敵の弾、ボス、背景の障害物 を割り当てる例が載っています。
0そうだね
プレイ済み
返信[11]
親投稿
コータさんへ 使い方はわかってますよ〜。ただ説明の意味だと0に設定したものはANDで0になるので絶対に当たらないはずなのに0は全てに当たる(?)みたいなので、ちょっと説明がおかしいなって思ってる感じです。 まあ0を使わなければ説明書通りだと思うんですがー…。 とはいえ、説明ありがとうございます。
0そうだね
プレイ済み
返信[12]
親投稿
0だと省略時と同じ扱いって事ですかね。そしたら一応は納得です。(ただ省略では無いと思いますが…)
0そうだね
プレイ済み
返信[13]
親投稿
ひろきち henahenachoco
えーっと、bit毎のANDなら、 1 AND 1 →1 1 AND 0 →0 0 AND 0 →0 となるはずなのに、 マスク値に0、つまり、全部のbitを0にした場合はどのスプライトとも衝突する、と言うことでしょうか?
0そうだね
プレイ済み
返信[14]
親投稿
「敵との衝突判定には、グループに&HF0を入れる。」との記述もあります。確かに省略可能になっています。省略不可になったのであれば、それに伴い仕様変更されそうな気がしますが、内部処理の都合かなにかあるのでしょうか。
0そうだね
プレイ済み
返信[15]
親投稿
>へたれさん そういうことです〜。0は省略時と同じで全部に当たると考えればあとは上記の考え方で問題ないはずです。 >コータさん なるほどー。そうですね。実装の都合があるのかもしれないですが、とりあえず0だけ間違えなければあとは大丈夫なのかなって感じですね。
0そうだね
プレイ済み
返信[16]
親投稿
ひろきち henahenachoco
でんぺんさん なるほどー! いやはや、スッキリしました。 うまく使いこなせばいろんなことができそうですね。 ありがとうございます!
0そうだね
プレイ済み
返信[17]
親投稿
失礼しました、HELP1/3で省略型が示されていました。
0そうだね
プレイ済み