2つの座標の距離を算出し、当たり判定を行う方法です。
flash 特有の命令を使わない為、他の言語でも利用可能です。
距離の算出には、三平方の定理を使います。
2つの円の距離を求めたいなら次のようになります。
距離が算出できたら、2つの円の半径と比較することにより当たり判定が行えます。
先ほどのサンプルとプログラムを確認してみましょう。
変数名にAが付いているものが、中心の円に関係しています。
Bが付いているものは、マウスと一緒に移動する円に関係してます。
12行目で2点間の距離による当たり判定をしています。
判断文で各値を2乗のまま比較しているのは
コンピューターが平方根の計算を少し苦手としているからです。
円と円の当たり判定には最適です。ビリヤードゲームなどの球と球の当たりに使用します。
また、円と点(片方に厚みがない)などにも適しています。
対象物が完全な円でなくても、ゲームとしての面白さを
損なわないなら使っていいと思います。
また、当たり判定として使わず射程を測るのにも使えます。
(射程内なら自動で攻撃するなどのシチュエーションで)
2点間の距離を算出して一定距離以内に入ったかどうか調べることは
当たり判定とまったく同じ処理なのです。
2点間の距離による当たり判定の処理は
単なる四角形(矩形)同士の当たり判定より少しばかり重いです。
もし、当たり判定を行う対象が非常に多い時には
まず四角形(矩形)同士の当たり判定を行い、それが当たっていた時のみ
2点間の距離による当たり判定をして正確な結果を出すというやり方がいいと思います。
つまり、処理の軽い判定で「当たっている可能性」を調べ、より正確な判定方法で
「当たり外れ」を調べます。
[ 当たり判定について ]へ戻る