| 2点間の距離を算出するのだ | ||||
だ〜いぶ間があいてしまったんで、題材がすっとんじゃってますけど、あんま気にしないで下さい(^^ゞ 今作成中の『Distance』というシューティングゲームのメインコンセプトは「自機から近い位置で倒すほど得点倍率が高い」というもの。ということは、必然的に自機と敵との間の距離を算出しなきゃいけなくなってくる。ちょっと下の図を見ていただきたい。 ![]() 要は、(mx,my)〜(ex,ey)の距離を出したいのである。ここで数学の知識が必要となってくるわけだが、直角三角形の場合dxとdyの長さがわかってれば斜め辺の長さは求めることができる。それがいわゆる三平方の定理である(すっかり忘れてた^^;)。 ?2=dx2+dy2 つまり、(dx2+dy2)の平方根を求めれば、2点間の距離が算出できるというわけだ。しかし、これには致命的な問題点がある。HSP2.4には標準状態のままだと平方根を求める命令がないのである。もちろん拡張dllなんかでその命令を追加することはできるが、別にそこまでして正確な平方根を求めようと思わないのなら、基本命令だけでもなんとかできちゃうのである。もちろんけっこう値はいいかげんなんで、正確に求めたいなら拡張dllを使いましょう。
※CTRLを押しながらだと、点が素早く動く。 このスクリプトのポイントは3点。
ちなみに乗数を900個用意したのは、640x480の斜めの長さは約832だから。つまり、これだけ用意しておけば640x480のウィンドウをややはみ出すような2点間の距離も求められるってわけ。今回のスクリプトの場合中心からの距離を求めてるから、本当は400個も用意しておけば充分。例えば10段階程度で距離を求めたいなら、10個用意すれば充分なわけで、処理速度にもそれほど影響はない。
|