我正在製作一個使用非常簡單的碰撞檢測的遊戲。我沒有使用2D盒,因爲這是一個矯枉過正的問題。基本上,它是Pong和fooseball的組合。當球速度加快並且速度非常高時,它會穿過它應該碰撞的牆。該代碼以慢速和常規速度運行,但運動速度非常快。在碰撞期間穿過牆壁的物體
這是我的代碼snipet:
pos.x是保持我的球中的x位置的矢量。
if (pos.x - radius < wallLeft){
pos.x = wallLeft + radius;
vel.x *= -1;
}
我該怎麼做才能改善這種情況? 謝謝
球只在一個方向穿過牆嗎? –
球是否暫時通過並且反彈得太晚或者不會反彈?此外,我們需要這些字段的類型以及您在此之前如何進行運動計算。 – KillianDS
嘗試在if語句的條件檢查上設置一個斷點,以便查看爲什麼它沒有註冊。你是否使用pos.x作爲無符號整數? – Dawson