初めまして。現在シューティングゲームを作っているのですが、
高速で移動する弾丸の当たり判定は、"直線"ということにして行おうと思ったのですが、その組み方がわかりません。
直線:(x1,y1)から(x2,y2)まで移動する直線
矩形:(cx,cy)に存在し、幅が(width,height)の矩形 ※座標は矩形の中心
この矩形と直線の当たり判定の作り方を教えてください。
矩形と矩形、円と円の当たり判定なら簡単でわかるのですが、
矩形と直線の当たり判定の例は、ネットで検索しても見つかりませんでした(あってもFlashなどの別環境でソースが理解できませんでした)。
矩形と直線の当たり判定
Re:矩形と直線の当たり判定
矩形の四隅が、線分の全て上にある、もしくは下にあるのならば、矩形は線分をまたいでいません。
逆に、一つでも違う方向のものがあれば、またいでいると言えるでしょう。
(x1,y1)と(x2,y2)を通る直線の式を求め、
その式と矩形の四隅の点を比較していけば、出来るかもしれません。
実装したことがないので、あんまり自信はないんですが・・
逆に、一つでも違う方向のものがあれば、またいでいると言えるでしょう。
(x1,y1)と(x2,y2)を通る直線の式を求め、
その式と矩形の四隅の点を比較していけば、出来るかもしれません。
実装したことがないので、あんまり自信はないんですが・・
Re:矩形と直線の当たり判定
>MNSさん
僕が正しく理解出来ていないだけかもしれませんが、それだと/□という状態で( スラッシュはもうちょい小さいイメージで)成立しちゃわないでしょうか。
矩形を4本の線分と考えて、どれかと実交点を持つ時当たっていると判定するのはどうでしょうか。
僕が正しく理解出来ていないだけかもしれませんが、それだと/□という状態で( スラッシュはもうちょい小さいイメージで)成立しちゃわないでしょうか。
矩形を4本の線分と考えて、どれかと実交点を持つ時当たっていると判定するのはどうでしょうか。
Re:矩形と直線の当たり判定
MNSさん、ねこさんご回答ありがとうございます。
ねこさんの矩形の直線を一本ずつ交差している、あるいは直線が矩形に囲まれているときに
接触したと判定するように、試してみたいと思います。
ねこさんの矩形の直線を一本ずつ交差している、あるいは直線が矩形に囲まれているときに
接触したと判定するように、試してみたいと思います。