我正在研究一個簡單的碰撞系統,重點是膠囊碰撞。使用許多資源,但主要是this site我已經能夠得到兩個膠囊相互碰撞。這種方法給了我兩條線段之間的最短距離。然後檢查兩個膠囊的組合半徑,看看是否發生碰撞。如何獲得兩個膠囊碰撞的時間
這是工作,但有兩個問題與此解決方案:
- 如果對象是移動速度非常快,在那裏他們將通過相互移動的點,半徑檢查會失敗,並且對象將通過對方。
- 當發生碰撞時,我無法知道如何使物體齊平以實際觸摸(例如,當角色落地時)。
我有另一個功能,我發現here使用球體,這將返回兩個球體將發生碰撞的時間。當使用此功能,並且我檢測到碰撞(時間< 1)時,我可以將該幀的對象速度乘以該時間,並使對象變爲齊平。我正在尋找一種方法來修改該網站中的段碰撞函數,以便爲該段提供與段相同的信息以分段碰撞。
這聽起來像它會工作結束,但我沒有最近行的點(在你的例子中是obj1和obj2)。我只有距離。第一個鏈接中提供的算法使用矢量數學來獲取距離,而沒有辦法獲取該線的兩個端點。如果我能得到兩條線之間距離的終點,我可以嘗試你的解決方案。 – PicklesIIDX
「兩條線之間的距離」是obj2.x-obj1.x,對吧? – Exceptyon