Flashゲーム作成講座

初心者からクリエイター志望まで Flashゲームの作り方 入門

ゲームの作り方を初心者にも分かりやすく説明します。ゲームクリエイターを目指す方にも役立つ情報を。

2点間の距離による当たり判定

2つの座標の距離を算出し、当たり判定を行う方法です。
flash 特有の命令を使わない為、他の言語でも利用可能です。

距離の算出には、三平方の定理を使います。

三平方の定理を当たり判定に使う

2つの円の距離を求めたいなら次のようになります。

三平方の定理で当たり判定

距離が算出できたら、2つの円の半径と比較することにより当たり判定が行えます。

三平方の定理を使って当たり判定

 

先ほどのサンプルとプログラムを確認してみましょう。

flash as3 三平方の定理で当たり判定

変数名にAが付いているものが、中心の円に関係しています。
Bが付いているものは、マウスと一緒に移動する円に関係してます。

12行目で2点間の距離による当たり判定をしています。
判断文で各値を2乗のまま比較しているのは
コンピューターが平方根の計算を少し苦手としているからです。

 

2点間の距離による当たり判定の使いどころ

円と円の当たり判定には最適です。ビリヤードゲームなどの球と球の当たりに使用します。
また、円と点(片方に厚みがない)などにも適しています。
対象物が完全な円でなくても、ゲームとしての面白さを
損なわないなら使っていいと思います。

また、当たり判定として使わず射程を測るのにも使えます。
(射程内なら自動で攻撃するなどのシチュエーションで)
2点間の距離を算出して一定距離以内に入ったかどうか調べることは
当たり判定とまったく同じ処理なのです。

 

処理の重さを考える

2点間の距離による当たり判定の処理は
単なる四角形(矩形)同士の当たり判定より少しばかり重いです。

もし、当たり判定を行う対象が非常に多い時には
まず四角形(矩形)同士の当たり判定を行い、それが当たっていた時のみ
2点間の距離による当たり判定をして正確な結果を出すというやり方がいいと思います。

つまり、処理の軽い判定で「当たっている可能性」を調べ、より正確な判定方法で
当たり外れ」を調べます。

 

[ 当たり判定について ]へ戻る