アルカノイドのようなゲームを作ろうとしていますが、衝突の問題に直面しています。いつものように、レンガは長方形(私の場合は正方形)であり、ボールは円であるため、軸に沿った境界ボックスがすべてです。
これまでのところ、簡単な衝突検出アルゴリズムがありますが、ボールが各ブリックのどちら側に当たるかを知る必要があります。例えば:
これまでのところ、それぞれの側がヒットしたかどうかをチェックするアルゴリズムがあります。
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;
}
しかし、画像の3番目のように、コーナーに近い衝突では、2つのフラグ(たとえば、左と下)が1に設定されているため、決定方法がわかりません。
これらの場合、通常は何が行われますか?