2011-04-24 29 views
2

有誰知道在Box2D(Cocos2D附帶的版本)中創建具有許多(〜10000)頂點的靜態地面體的最佳方法是什麼。Box2d Loop Shape /在Cocos2D中創建靜​​態地面形狀

這就是我現在爲立方貝塞爾做的,它看起來不錯,但運行速度有點慢。

for (int i = 0; i<segments; i++) { 
    CGPoint p2 = vertices[i+1]; 
    CGPoint p1 = vertices[i]; 
    b2PolygonShape poly; 
    poly.SetAsEdge(b2Vec2(p1.x,p1.y), b2Vec2(p2.x, p2.y)); 
    groundBody->CreateFixture(&poly,0); 
} 

人們都在談論b2LoopShape,但它似乎並沒有包含在與Cocos一起發售的Box2d版本中?

任何想法?

+0

Hi Erik。我可以想象,許多頂點會減慢速度。你爲什麼需要那麼多?也許還有其他選擇。 b2LoopShape不包含在cocos2d中。我對此並不熟悉,所以我不知道該做多少工作。 – nash 2011-04-24 20:57:01

+0

嗨納什!它現在運行正常,即使在我的iphone 3上,但我沒有去10000個頂點,我把它降低到了〜2000。 – erik 2011-04-27 07:48:00

回答

1

對於b2LoopShape,您需要用Box2D中繼替換外部/ Box2d。

  1. 結帳Box2D中繼從box2d
  2. 用trunk/Box2D/Box2D替換cocos2d/external/Box2d。
  3. 修改添加Box2D文件的Xcode項目。
  4. 修改重命名類的一些代碼,例如s/b2DebugDraw/b2Draw /。
+0

謝謝,它的工作! – erik 2011-04-27 07:46:42