我正在对box2d对象施加冲动,如下所示:
b2Vec2 impulse = b2Vec2(4.0f, 15.0f);
body->ApplyLinearImpulse(impulse, body->GetWorldCenter());
我知道这可能是高中数学,我保证我已经努力为自己发现这个;请原谅我的无知。
如果我有对象a,b和c - 并且对象a位于b和c的中点,我如何创建Box2D脉冲以使对象b和c远离速度v?
答案 0 :(得分:3)
尝试使用:
b2Vec2 impulseB = bodyB->GetPosition() - bodyA->GetPosition();
impulseB /= impulseB.Length();
impulseB *= predefinedScaleValue; // predefinedScaleValue is your velocity
b2Vec2 impulseC = -impulseB;
bodyB->ApplyLinearImpulse(impulseB, bodyB->GetWorldCenter());
bodyC->ApplyLinearImpulse(impulseC, bodyC->GetWorldCenter());
我希望很清楚这里发生了什么。如果没有,请问:)