2017-01-04 62 views
0

我的程序包含越來越多的對象「n」,每個對象都有自定義形狀和座標。 爲了檢測每個物體的碰撞,我檢查它與所有其他物體之間的距離,以檢查它是否足夠接近碰撞。然而,這會使複雜度n ^(n-1)太高。 什麼是更好的碰撞檢測算法: - 簡單的2D對象,如圓形和三角形? -costume對象由頂點和PShape?在Java處理3(2D)中碰撞檢測的更好算法?

+2

你看過[Box2D](https://github.com/erincatto/Box2D)嗎? – teppic

回答

1

簡短的回答:將你的世界空間分割成空間,然後只檢查在同一空間中的對象。這樣想一下:如果你有一個位於左上角的物體,你不必檢查右下角的物體。只是在左上角的其他物體。

有很多方法可以實現這一點。最常見的方法之一是數據結構,稱爲quadtree

另一種方法是使用物理庫,爲您做所有的碰撞檢測。

如果你只是做一些簡單的事情,上述兩種方法可能會矯枉過正,因此完全取決於你。