[HMC]年間5250円で独自ドメイン付属、ウィルスチェックありのレンタルサーバ!
Last update : 1999/12/15
ゲーム制作基礎 第8回
座標同士の当たり判定
サンプルコードのダウンロード
  では、まずサンプルコードをダウンロードし、解凍して下さい。 私はVisual C++6.0でコンパイルしているので、をお持ちの方は Visual C++でプロジェクトファイルを開いて下さい(「game_08.dsw」をダブルクリックすれば開けます)。 圧縮ファイルに含まれる「game_08.exe」をダブルクリックし、実行してみて下さい。どうでしょう?画面が切り替わり、フルスクリーン化すると思います。 そして、何かキーを押すと、そのキーコードが画面に表示されると思います。 というわけで今回は、キー入力について解説したいと思います。
二次元座標同士の当たり判定
  右の図のように、座標上に2つの長方形が存在したとします。 ここで、この2つの物体(長方形)が重なっているか(当たっているか)を調べるときに、次のような式をよく使います。

ただ、例によって(?)数学上の座標とパソコンのディスプレイの座標ではY軸の向きが逆なので、
これが正しい式となります。まぁ、当たった時の判定だけしたいのならば、「!」を使えば直ぐに出来ますね。
実際にゲームに使用する場合は、キャラクターの全体もしくは、その一部を当たり判定とし、その部分を長方形として扱い、 上の式へ代入します。ただ、この方法はシューティングゲーム等で、「あまり精度にはこだわらないから速度の速い方法がいい」 という場合に使用して下さい(爆。
レッツプログラミング(ぉ
ではサンプルコードを見ていきます。
今回は、
第3回 キー入力によって複数のキャラクタを4方向へ動かす の最後の方へちょこっと加え、2匹のスライムが重なった(当たった)時にそのメッセージを表示するようにします。
もう解説するまでも無いですね(爆