0

我是新來的Cocos2d,Box2d和遊戲開發一起,但我已經閱讀了一些教程,至少有一個良好的開始遊戲設置和工作...有效處理物體間碰撞檢測的最佳方法是什麼?

我現在在點在那裏我需要開始添加更多的圖層到一個圖層,並且需要檢查並查看我的主要頭像是否以及何時會與其中的任何一個碰撞。

常識似乎告訴我,我添加的身體越多,我添加檢查,以查看fixture1是否與fixture2發生碰撞,例如會使處理器在某個時間點停止運行。

是否有任何最佳實踐和/或有效的算法來使隨着身體數量的增長,隨着時間的推移,它會不會更有效?

任何鏈接或方向將不勝感激!謝謝!

回答

0

您可以使用QuadTree分割場景並獲取需要檢查的物體列表。 (有很多文章顯示QuadTree是如何工作的,只是谷歌它:D)

如果這對你有點複雜。然後你可以嘗試把你的場景劃分成許多網格,並且根據它們的2D位置將網格物體放入網格中。然後只檢查每個網格中的物體。這比正常循環快很多。

http://i.stack.imgur.com/W5cBT.png

+0

謝謝!生病檢查出來!我想在重讀我的文章之後,我意識到我知道box2d在很大程度上爲你做了碰撞檢測,Im的部分問題是,一旦檢測到碰撞,就用場景中的每個燈具檢查2個UNKNOWN燈具,最好的方法來找出你碰到什麼,它發生了什麼? – JAManfredi

+0

這取決於你的燈具數量。當它很小時,如0-10,這是最好的解決方案。當它更多時,使用一些算法來減少CPU使用率。實際上我之前沒有使用過box2d,所以我不能告訴你一些關於這個的代碼。希望別人能爲你做到這一點。 – sindney

+0

非常感謝你我很感激! – JAManfredi