2010-10-21 94 views
2

作爲一種愛好,我正在開發2D遊戲。我已經使用分離軸方法實現了一些基本的碰撞檢測。當兩個物體發生碰撞時,我將其中一個物體沿着具有最少重疊量的軸投射出去。將對象投射出衝突

我遇到的問題是,當一個對象移動得相當快時,具有最少量重疊的軸並不總是正確的方向。我最好的例子是當一個物體由於模擬的引力拉下而沿着+ y軸向下移動並與靠近「邊緣」的環境物體(如在懸崖邊緣)發生碰撞時。如果物體足夠快地下落,則具有最小重疊量的軸成爲x軸,並且物體沿着x軸被側向推動。

處理快速移動物體的最佳方法是什麼?我曾考慮過以小幅度增加移動掉落的物體,這似乎增加了額外的開銷。我也考慮給環境對象一個'偏好'軸來投影掉下來的物體,但這看起來很麻煩並且容易出錯。

有沒有辦法做到這一點而不增加額外的開銷?

回答

1

我終於找到了一篇很好的文章來描述掃描測試,以防別人在同一個問題上絆倒這篇文章。這篇文章有更多的,但下面的鏈接描述軸對齊包圍盒之間的碰撞,這是我使用的是什麼:

link text

+0

嗯,你還可以檢查出連續碰撞檢測 - HTTP:// www.gamedev.net/reference/programming/features/ellipsoid-ccd/ – 2010-10-22 15:43:07

+0

此外,我知道你是做這個愛好的,但如果你想通過良好的2D CCD代碼來看看,請查看Box2D(它也有一個如果你進入那種事情,C#端口稱爲Box2DX)。開源且維護良好。 – 2010-10-22 15:45:31

+0

謝謝你的建議。 CCD上的東西看起來很有趣。 – Pimpl 2010-10-22 23:35:57