2012-07-28 64 views
1

我開發了一個入侵者的網格,我可以向子彈射擊。太空入侵者碰撞檢測。 1子彈檢查所有入侵者?

我所知道的碰撞檢測的唯一解決方案是使用兩個RectanglesIntersects方法。

現在,我覺得將每一顆子彈與屏幕上的每一個入侵者進行比較都是無效的。

是否有另一種解決方案,我可以在這裏使用,更智能,只比較一些入侵者。

我建議爲X軸使用一個標誌,它是在發射時用子彈的X位置填充的。入侵者精靈將有權訪問該標誌,並且只有在入侵者精靈位於該X位置(+/-幾個像素)時纔會運行相交方法。這會大大減少比較的次數。

任何想法?謝謝。

+2

我過早的優化感是刺痛的... – 2012-07-28 06:26:08

+0

@AndrewRussell這就是它:) – conor 2012-07-28 07:34:55

回答

1

你是對的,你可以做的事情可能更有效。通過將空間劃分爲粗粒部分並查看子彈所在的部分,可以在其他部分修剪入侵者。你可以更進一步,並有多層「粗糙」或分辨率。

在這個思路的結尾是一個數據結構,稱爲quad tree。這是在兩個維度上進行碰撞檢測的一種自然而有效的方法。

+0

這就是它被稱爲..一個朋友解釋了它,但不記得算法的名稱爲我的生活。 – conor 2012-07-28 07:35:39