我正在構建一個遊戲,我目前正在研究物理。SAT碰撞檢測 - 角落修復
我正在使用SAT算法來檢測碰撞。在字符(AxisAlignedBoundingBox)和某些矩形(帶有旋轉)之間的衝突爲。
一切正常,除在特定情況下在角落附近碰撞。 (這是一個相當已知的問題,但我沒有找到任何好的解決方案)。
在實施例1,在第二場景中的字符應該向上移動(留在障礙物)。
它正好向左移動。
對例2,在第二個場景中字符不應該起來。有時會得到。
我知道爲什麼發生這種情況,因爲DX和DY,則最小平移向量並不總是想要一個。
這個問題有幾種解決方案,但不是一個很好的解決方案(解決問題而不是創建其他問題!)。 我甚至願意從一開始就使用完全不同的算法。
請給我一個比SAT更好的算法暗示,或者一些解決方法。
謝謝!
你能展示一些代碼嗎?你在每種情況下獲得的正常接觸是什麼,你期望什麼? (對於我來說,第一個應該是'(0,1)'和第二個'(-1,0)',這就是你應該看到的最小平移向量) – Zouch
不,比簡單的運動。 dx,dy,重力對此起作用。恩。 MTV:(-2,-0.35) - >角色需要在X軸和-0上移動-2。35在Y軸上脫離碰撞 –
您需要提供一些代碼並更準確地說明您的問題。如果您在處理碰撞時遇到問題,則可能與您用於檢測它們的算法無關,但與計算響應的方式有關。 – Zouch