我正在像这样的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());

我希望很清楚这里发生了什么。如果没有,请问:)

关于objective-c - 我如何冲动,使box2d/cocos2diphone中的b点远离a点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10202228/

10-12 03:11