私はアルカノイドのようなゲームを作ろうとしていますが、今は衝突の問題に直面しています。いつものように、レンガは四角形(私の場合は四角形)で、ボールは円です。したがって、軸に沿ったバウンディングボックスのすべてです。軸合わせバウンディングボックスの衝突:どの辺が衝突しているか
これまでのところ、私は些細な衝突検出アルゴリズムを持っていますが、ボールが当たった各ブリックのどの面を知る必要があります。たとえば:
up = left = right = down = 0;
if(mouse.left < brick.left && brick.left < mouse.right && mouse.right < brick.right){
left = 1;
}
if(brick.left < mouse.left && mouse.left < brick.right && brick.right < mouse.right){
right = 1;
}
if(mouse.top < brick.top && brick.top < mouse.bottom && mouse.bottom < brick.bottom){
up = 1;
}
if(brick .top < mouse.top && mouse.top < brick.bottom && brick.bottom < mouse.bottom){
down = 1;
}
しかし、二つのフラグ(、画像における第三のようなコーナーの近くに衝突、中:
は、これまでのところ私は、各辺がヒットしたかどうかをチェックするアルゴリズムを持っています例えば、左と下)が1に設定されているので、私は決める方法を知らない。
これらのケースでは通常何が行われますか?
逆方向の転送ですか?これは、文字通り、「エッジケース」です。ここで何をすべきかを決める必要があります。いいえ。あなたが感じていることは適切ですか? –
なぜあなたはどのエッジを知る必要がありますか?あなたがボールの適切な反映をしようとしているなら、ポイント/カプセルの衝突と4つのエッジの両方のような何かをしているはずです。 – Tetrad