2012-12-19 65 views
3

我在其中突圍賽,在某些時候,我發現球和槳之間的碰撞是這樣的:獲得來自Rectangle.Intersects碰撞細節()

// Ball class 
rectangle.Intersects(paddle.Rectangle); 

有什麼辦法我可以用當前的XNA API獲得碰撞的確切座標或任何細節。

我想到做一些基本的計算,比如比較碰撞瞬間每個物體的確切座標。這將是這個樣子:

// Ball class 
if((rectangle.X - paddle.Rectangle.X) < (paddle.Rectangle.Width/2)) 
    // Collision happened on the left side 
else 
    // Collision happened on the right side 

但我不知道這是做正確的方式。

你們有沒有關於我可能需要使用的引擎的提示?甚至使用這種方法的良好編碼實踐?

回答

3

我在http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.rectangle.intersect.aspx

發現有兩個類似的靜態方法(它們在返回值的方式不同),其結果給您的交集也爲長方形。這應該足以做你想做的事情。

+0

非常感謝您的參考! –

+0

好的,隨着返回的矩形,我該如何檢查碰撞球的槳的位置? –

+0

我不明白你想要得到什麼。無論碰撞如何,槳板的位置都應該已知。撞擊區域的位置,球接觸槳的地方是由這些交叉點方法產生的矩形。如果您只想知道一個點,並且生成的矩形大於該點,則可以通過取該矩形的中心來近似。 –