私はトップダウンの小さなゲームで動作するように衝突を試みてきました。私は、プレーヤーを追いかけているエンティティの束を持っています。もし私が衝突していなければ、彼らは明らかにすべてがまったく同じ場所に束ねられます。私は衝突があったかどうかを確認する方法を知っていますが、それにどのように反応するかはわかりません。私はそれを2,3時間、ちょうど回り込むことからいくらか働いていますが、それは本当に良いことではありません。プレイヤーを追うエンティティ間の衝突検出
if (check_collision(enemies[e1]->xPos, enemies[e1]->yPos, SIZE_ENEMY, SIZE_ENEMY, enemies[e2]->xPos, enemies[e2]->yPos, SIZE_ENEMY, SIZE_ENEMY) == true)
{
//the distance that is intersecting
float dx, dy;
if (enemies[e1]->xPos > enemies[e2]->xPos)
dx = enemies[e2]->xPos + SIZE_ENEMY - enemies[e1]->xPos;
if (enemies[e2]->xPos > enemies[e1]->xPos)
dx = enemies[e1]->xPos + SIZE_ENEMY - enemies[e2]->xPos;
if (enemies[e1]->yPos > enemies[e2]->yPos)
dy = enemies[e2]->yPos + SIZE_ENEMY - enemies[e1]->yPos;
if (enemies[e2]->yPos > enemies[e1]->yPos)
dy = enemies[e1]->yPos + SIZE_ENEMY - enemies[e2]->yPos;
if (dx < dy)
{
enemies[e1]->xPos += (dx/2);
enemies[e2]->xPos -= (dx/2);
}
if (dy < dx)
{
enemies[e1]->yPos += (dy/2);
enemies[e2]->yPos -= (dy/2);
}
}
私はちょうど完全にそれを間違ったやり方にしているかもしれないし、ちょっとしたことがないかもしれないので、何か助けに感謝します。
あなたはより多くの運を持っているかもしれませんhttp://gamedev.stackexchange.com/ –