Box2d当两个物体在旋转时发生碰撞时的奇怪行为
问题描述:
我最近正在开发一款游戏(它应该是像重组那样的太空船游戏)。 所以我的情况: - 我得到2具有0恢复原状和0摩擦的物体 - 当它们碰撞时,它们因为我的线状挡板而滑动并失去速度 - 但是当它们中的一个都旋转时(与setangularvelocity一起)速度非常高,我无法弄清楚为什么他们会这么难。Box2d当两个物体在旋转时发生碰撞时的奇怪行为
(我看,应该只是一个小反弹,即使没有恢复原状,但我不希望这样的事情)
这里的一些代码:
b2PolygonShape shape;
b2BodyDef def;
def.type = b2_dynamicBody;
b2FixtureDef fix;
fix.density = 1.f;
fix.restitution = .0f;
fix.friction = 0.f;
bbody = world->CreateBody(&def);
bbody2 = world->CreateBody(&def);
bbody->SetLinearDamping(2.0f);
bbody2->SetLinearDamping(2.0f);
// PIXELPERMETER is the scaling from pixels to meter. (30)
shape.SetAsBox(32/PIXELPERMETER/*=30*/, 32/PIXELPERMETER);
fix.shape = &shape;
bbody->CreateFixture(&fix);
bbody2->CreateFixture(&fix);
bbody2->SetTransform(b2Vec2(-100/PIXELPERMETER, 0), 0);
答
也许你应该尝试调整你的身体的海量数据?
b2MassData massData; massData.mass = 50; //Just tweak me massData.I = 1; //Just never set me to 0 if you don't want to have nAn propagating massData.center = b2Vec2_zero; bbody->SetMassData(&massData);
好的,我会试试看,谢谢你的快速回复。 编辑:是啊它做到了! – Cobrapitz