我在 box2d 对象上施加一个脉冲,如下所示:
b2Vec2 impulse = b2Vec2(4.0f, 15.0f);
body->ApplyLinearImpulse(impulse, body->GetWorldCenter());
我知道这可能是高中数学,我保证我已经努力为自己发现这一点;请原谅我的无知。
如果我有对象 a、b 和 c - 并且对象 a 位于 b 和 c 的中点,我如何创建一个 Box2D 脉冲,以便对象 b 和 c 以速度 v 远离 a?
我在 box2d 对象上施加一个脉冲,如下所示:
b2Vec2 impulse = b2Vec2(4.0f, 15.0f);
body->ApplyLinearImpulse(impulse, body->GetWorldCenter());
我知道这可能是高中数学,我保证我已经努力为自己发现这一点;请原谅我的无知。
如果我有对象 a、b 和 c - 并且对象 a 位于 b 和 c 的中点,我如何创建一个 Box2D 脉冲,以便对象 b 和 c 以速度 v 远离 a?
尝试使用这个:
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());
我希望很清楚这里发生了什么。如果没有,请问:)