4つ目
【マスクを使ってドット単位で当たっているか判定する方法】
最後が一番難しいですが、どんな複雑な形にも対応した、一番正確な当たり判定です。
「ババドン」の当たり判定はこの方法を採用しています。
まずマスクとは
↑この白黒の画像のことを言います。
上のカラーのUFOのやつはゲーム画面で使い、下の白黒のやつは表の画面に見せないで
裏画面に記憶させておきます。
そして、横から来る鉄砲がUFOに当たっているかの判定は、マスク画面上で行います。
例えばババドンを例に挙げてみると、ゲーム画面上でUFOの左上側座標が100,100だったとします。
鉄砲はとても小さくて1ドットだとして、今鉄砲の座標が110,140だったとします
このとき裏画面で、鉄砲とUFOの重なっている座標で色を抽出し、白だったらハズレ
黒だったらアタリと判定させます。
つまり鉄砲の座標からUFOの座標を引いて10,40になります
これがさっき言った重なっている座標になります。
あとはマスク画面上でpgetをすればginfo_r ginfo_g ginfo_bに色数値が代入され、即判定可能になります。
さっきまで鉄砲が1ドット×1ドットのときの話でしたので
14×8ドットくらいの大きさなら、どうするかというと
鉄砲の先端部分と後ろの末端部分の2箇所でさっきのような当たり判定をするといいです
空中地雷のようにもっと大きい画像の場合は2箇所でなく6、7箇所と数を増やしていけば問題ないはずです
これで一通りの当たり判定の説明は終わりです
どの当たり判定も一長一短がありますので、その場に応じてうまく使い分けてください。(←ちょっと偉そうに・・
しかし、ボクが知らないだけでもっと良いいろんな当たり判定方法があると思います。
が何分、自分の技術不足のためこれ以上の説明は不可能となりそうです。
まだまだこれからもいろんなサイトで勉強させてもらうつもりです
そうそうあたり判定といえば・・・
田舎のばぁちゃんがいきなり大量のお菓子を送りつけてきたのですが、家族総出で消化しようと
口にした途端、全員腹を下しました・・
まさか身内の送ってきたものであたるとは・・
いい加減うちのおばあちゃん、バイオテロの常習犯です
何回もひっかかるウチらもウチらですが。
って、当たり判定関係ないし・・
次回:1億桁×1億桁の開発状況報告