AndEngine Box2D中的独特机构

时间:2013-03-02 19:47:57

标签: android box2d andengine sprite

我想创建一个独特的物理体,用于精灵。这个精灵需要有两个部分,其中有一个碰撞表面和一个开放空间。

示例:

Sprite Example

在上面提供的示例中,精灵需要有一个物理box2d体,其中两个绿色空间需要物理,棕色中间需要“空”或没有物理属性。这是可能的还是我需要创建两个精灵?

1 个答案:

答案 0 :(得分:0)

是的,可能。您需要为每个绿色部件创建一个主体和两个夹具。

b2BodyDef myBodyDef;
myBodyDef.type = b2_dynamicBody;
b2Body* dynamicBody = m_world->CreateBody(&myBodyDef);

b2PolygonShape polygonShape;
b2FixtureDef myFixtureDef;
myFixtureDef.shape = &polygonShape;

// Left green rectangle
b2Vec2 vertices[4];
vertices[0].Set(0,  0);
vertices[1].Set(1,  0);
vertices[2].Set(1, 0.5);
vertices[3].Set(0,  0.5); 
polygonShape.Set(vertices, 4);
dynamicBody->CreateFixture(&myFixtureDef);

// Right green rectangle
b2Vec2 vertices[4];
vertices[0].Set(5,  0);
vertices[1].Set(6,  0);
vertices[2].Set(6, 0.5);
vertices[3].Set(5,  0.5); 
polygonShape.Set(vertices, 4);
dynamicBody->CreateFixture(&myFixtureDef);