グラフィック パッケージを使用して構築された 2 つの四角形で 2D 衝突検出を実装しようとしています。残念ながら、これを処理する関数を作成するために必要なロジックを理解していないと思い始めています。
以下は、小さなスプライトと他のいくつかの長方形を描画する私のコードです。私のスプライトはキーボード入力で動きます。
私はいくつかの本を使用し、Nehe などのサイトも試しました。これらは非常に優れたチュートリアルですが、3D 衝突を直接扱っているようにしか見えません。
上記の長方形を使用して衝突検出を実装する効率的な方法を教えてください。各オブジェクトの座標を比較する必要があることはわかっています。オブジェクトの位置を追跡し、衝突をチェックし、衝突した場合に移動を停止する方法がわかりません。
私は独学で、何日も止まっているようです。私はまったくアイデアがなく、覚えているよりも多くの Google ページを検索しました。素朴で申し訳ありません。
建設的なコメントとサンプルコードをいただければ幸いです。ありがとうございました。
void drawSprite (RECT rect){
glBegin(GL_QUADS);
glColor3f(0.2f, 0.2f, 0.2f);
glVertex3f(rect.x, rect.y, 0.0);
glColor3f(1.0f, 1.0f, 1.0f);
glVertex3f(rect.x, rect.y+rect.h, 0.0);
glColor3f(0.2f, 0.2f, 0.2f);
glVertex3f(rect.x+rect.w, rect.y+rect.h, 0.0);
glColor3f(1.0f, 1.0f, 1.0f);
glVertex3f(rect.x+rect.w, rect.y, 0.0);
glEnd();
}
void drawPlatform (RECT rect){
glBegin(GL_QUADS);
glColor3f(0.2f,0.2f,0.0f);
glVertex3f(rect.x, rect.y, 0.0);
glColor3f(1.0f,1.0f,0.0f);
glVertex3f(rect.x, rect.y+rect.h, 0.0);
glColor3f(0.2f, 0.2f, 0.0f);
glVertex3f(rect.x+rect.w, rect.y+rect.h, 0.0);
glColor3f(1.0f, 1.0f, 0.0f);
glVertex3f(rect.x+rect.w, rect.y, 0.0);
glEnd();
}