我一直在嘗試將碰撞檢測實現爲一個簡單的遊戲。我環顧四周,所有事情都回到了我爲我的發明做的等式上。然而它並不完美。我錯過了什麼嗎?還是我完全錯了?子彈和敵人之間的碰撞檢測
bool collisionquery(enemy z){
double dist = sqrt((px - z.getpx()) * (px - z.getpx()) +
(py - z.getpy()) * (py - z.getpy()) +
(pz - z.getpz()) * (pz - z.getpz()));
if (dist < 0.1*getbulletsize())
{
cout << "hit\n";
return true;
}
return false;
}
它看起來OK;也許增加你比較'dist'的邊際?你只考慮子彈大小,而不是敵人的大小。 – Kos
謝謝你,生病讓我去:) –
我假設你的子彈正在移動?它可能只是移動得太快,以至於在檢查它在敵人的前面或後面的離散時間裏,從來沒有註冊過命中。子彈的大小,你也不會給自己很大的空間。 – Bart