0

我试图让一些流畅的代码工作,发现它是使用旧版本的 Box2D 编写的。我一直在尝试自己进行更改,但发现我陷入了这一部分。

b2PolygonDef polyDef;
polyDef.SetAsBox(b2Random(0.3f,0.7f), b2Random(0.3f,0.7f));

polyDef.density = 3.0f;
b2BodyDef bodyDef;
bodyDef.position = b2Vec2(0.0f,25.0f);

bodyDef.angularDamping = 0.5f;

bod = m_world->CreateBody(&bodyDef);
bod->CreateShape(&polyDef);
bod->SetMassFromShapes();

SetMassFromShapes 已被替换为 SetMassData(<#const b2MassData *data#>);

我的问题是。使用较旧的 Box2D 查看发布的代码时,我应该给它什么数据?

请帮忙。

4

1 回答 1

0

在r13r25修订版中,SetMassFromShapes 被 ResetMassData 取代。虽然,您不需要调用它,因为它会自动调用。看r13说明:

删除了 b2Body::SetMassFromShapes。现在,当您调用 b2Body::CreateFixture/DestroyFixture 时,质量会自动更新。这样做是为了使 API 更简单。

于 2013-03-12T11:27:41.973 回答