2010-12-05 65 views
2

我试图创建Box2D的身体,看起来像这样:创建复杂的形状与Box2D的

http://www.tobyjones.com/3d/3d_rec.jpg

我要创建一个水平矩形,并添加垂直长方形的horiztontal矩形的每一端。

我想创建这个作为一个单一的身体,所以我在印象之下,我应该创建3个形状,并附加到身体使用夹具,但我不能看到我是如何surposition定位形状相对于身体。

所以我的问题是,我如何使用灯具在身体内定位每个形状?

回答

0
//middle shape 
polygonShape.SetAsBox(5, 1); 

//left end shape 
polygonShape.SetAsBox(1, 5, b2Vec2(-5,-5), 0); 

//right end shape 
polygonShape.SetAsBox(1, 5, b2Vec2(5,-5), 0); 
1

我相信你也需要使用CreateShape()方法为每个形状添加:

 bodyDef = new b2BodyDef(); 

    body = world.CreateBody(bodyDef); 

    boxDef = new b2PolygonShape(); 
    boxDef.SetAsBox(5,1); 

    body.CreateShape(boxDef); 

    boxDef.SetAsBox(1, 5, b2Vec2(-5,5), 0); 

    body.CreateShape(boxDef); 

    boxDef.SetAsBox(1, 5, b2Vec2(5,-5), 0); 

    body.CreateShape(boxDef);