2014-06-24 29 views
0

我正在使用cocos2d-x和box2d。我正在檢測與box2d的碰撞,除了一件小事外,所有事情似乎都很順利。由於某些原因,當物體相撞時,它們會彼此反彈。現在我正在閱讀這一點,發現恢復原狀導致了這一點。所以我打開了物理編輯器,並將兩個對象都設置爲0.0。它仍然在做,所以我研究了一些,發現有一個靜態/運動體可以阻止這種情況的發生,因此,我能夠做到這一點的一個對象,因爲它不是應用重力等,而是與另一個對象對象我不得不把它保持爲動態的,以便它能夠將重力應用到它。所以現在當它撞擊到運動的車身時,動態車身仍然從另一個物體反彈。它似乎只在它碰到的頂點處於某個角度的地方進行。有沒有什麼真正的方法可以告訴它不要動。發生這種情況時,它會將我的主角從屏幕上推開。用cocos2d在box2d中停止彈跳

更新: 好吧,所以也許我正在討論這個錯誤。我只是想學習,所以我認爲一個「飛揚的鳥」項目將是一個很好的學習經驗。所以我想我需要一個物理引擎,所以我用box2d去,所以這隻鳥會自己掉下來。然後,我現在只是將一個棒球棒的圖像(向左移動,因爲這隻鳥固定在x = birdheight/2和y = screenheight/2)以測試碰撞。在第一次碰撞是擊中廣場,所以我研究如何改變矩形。這樣做我碰到了物理編輯。所以然後我更新了圖像,並獲得了box2d導出的燈具。因此,我將蝙蝠圖像從簡單的精靈重新映射到box2d主體,以便我可以檢測到與正確的新矩形的碰撞。當我第一次實施檢測工作良好,但兩個對象被推向屏幕滾動的方向(向左)。因此,在讀完一些東西之後,我將蝙蝠圖像轉換成一個靜止的身體,然後停止推動蝙蝠,但鳥仍然移動。我只是使用box2d本質上是爲了讓鳥兒自己墜落,並且檢測矩形的碰撞比圖像的簡單方塊更精確。我是否完全做錯了這個或者是否有一些我錯過了讓碰撞檢測停在交叉點的確切位置?

+0

如果你正在使用cocos2d-x v3你看過新的PhysicsEngine嗎? – GameDeveloper

+0

我不確定你指的是什麼。我剛剛在一週前下載了物理引擎,當我點擊檢查更新時,它說沒有可用的更新。我也不確定這將如何解決我的問題? – ngreenwood6

+0

我們在談論多少反彈? Box2D是爲了速度而建立的,而不是準確性,結果往往不是理想的結果。我不知道有什麼辦法可以完全消除彈跳,但是如果兩個裝置都有0的恢復,反彈應該是非常小的。你可以嘗試減少時間步長。 – iforce2d

回答

0

閱讀有關傳感器,這是你正在尋找的東西。 http://www.iforce2d.net/b2dtut/sensors 如果您使用物理編輯器,那麼您只需選中右側面板上的「傳感器」複選框,即可完成。

+0

感謝您的回覆,但我所有的對象都檢查了「是傳感器」,它仍然無法工作。 – ngreenwood6

+0

這是不正確的,只有一個燈具應該具有「傳感器」屬性爲真。此外,嘗試使用調試繪圖來查看您的形狀是否處於您期望的位置。 – Nadarian