2011-04-24 25 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