ゲームプログラミングのはなし24
【ゲームプログラミングのはなし24】
ただですね...
前回の記事を見ていただければわかるように、計算式が美しくないんですよね。二乗の計算を3回も!行っているので。これはコンピュータにとっては計算コストが高くつきます。
実際はイマドキのCPUでは全然スピードが落ちないので気にする必要はないかもしれませんが、ゲームプログラマーとしては「これはキモチワルイ」と思うようになって欲しいものです。
そこで、2つ目の当たり判定の方法をご紹介します。
これはキャラクターの当たり判定を四角形で考えます。変数は右、左、上、下の意味でright, left, top, bottom、実際にはメンドクサイのでr, l, t, bとしておき、rはキャラクターのX座標、lはキャラクターのX座標にそのキャラの「幅」を足した値、tはキャラクターのY座標、bはキャラクターのY座標にそのキャラの「高さ」を足した値を保持します。
これをマイキャラ、敵キャラごとに全て設定します。...メンドクサイですね。
そして、衝突判定は2つのキャラクターの四角形が重なっているかどうかを判定します。4つの式が必要になります。
1.マイキャラの左<敵キャラの右
2.マイキャラの右<敵キャラの左
3.マイキャラの上<敵キャラの下
4.マイキャラの下<敵キャラの上
これらの条件を全て満たせば、その2つのキャラクターはぶつかってます。
この方法はプログラマーにとっては手続きが多くて思考コストが高くつくのですが、コンピュータにとっては計算コストが格段に低くなります。比較するだけですから。
これも絵を描けば一発でわかるんですけどね; これも夏休みの自由研究にします。(続く)