2012-10-25 112 views
0

我對cocos2d和box2d相當陌生。我正在嘗試使用加速度計創建一個遊戲橫向無盡跑步者。我的角色從頂部掉下來,並不斷向下移動。我遇到的問題是超時精靈和物理體變得不同步,並且物理主體離開精靈,從而導致與碰撞相關的奇怪行爲。只有在設備上運行時纔會發生這種情況,因爲播放器不斷向下移動,碰撞垂直變得不同步並且水平保持正確。 我的階躍函數是:Box2d物理體與Cocos2d sprite不同步

const float32 timeStep = 1.0f/30.0f; 
const int32 velocityIterations = 5; 
const int32 positionIterations = 1; 

// step the world 
world->Step(timeStep, velocityIterations, positionIterations); 
+0

你能告訴我更多細節,看起來不同步嗎? Sceenshots或視頻可以是有用的。 – Pavel

+0

你確定你正在更新每個box2D勾號的精靈位置嗎? –

回答

0

多大的距離,我們談論的?如果您正在將Box2D機身移動一個非常大的距離(數千Box2D米),則可能會在物理模擬或cocos2d位置(或兩者)中出現錯誤,從而導致您所描述的效果。

2D物理引擎沒有設計爲在沒有約束的世界中工作(即無限滾動)。如果這就是你正在做的事情,你將不得不提出一個解決方案,在這個世界受到限制的情況下,玩家不會意識到這一點。一種常用的方法是一旦它們超過特定閾值,就將對象和相關視圖的位置重置回(受限)世界的頂部。大多數遊戲只是將玩家鎖定在適當的位置,而不是將玩家的世界移動到玩家的下方,給人以無盡的移動印象,而只有背景在移動。

+0

這個距離相當不錯,大約有20k像素。看來我將不得不想出一個解決方案,並嘗試你推薦的方法。非常感謝。並btw真棒書,我從你的書和kobold2d瞭解了很多偉大的事情。 – Gnoob