我怎样才能让一个冲动,使b点从点A的Box2D/cocos2diphone
我一个Box2D的对象上应用的冲动像这样的东西移开:我怎样才能让一个冲动,使b点从点A的Box2D/cocos2diphone
b2Vec2 impulse = b2Vec2(4.0f, 15.0f);
body->ApplyLinearImpulse(impulse, body->GetWorldCenter());
我知道这可能是高学校的数学,我保证我已经努力为自己发现这一点;请原谅我的无知。
如果我有物体a,b和c-并且物体a位于b和c的中点,如何创建Box2D冲动使物体b和c从速度v移开?
尝试使用这样的:
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());
我希望这清楚是怎么回事。如果没有,只要问:)
作品致谢!我确实在第2行出现了一个错误“成员引用b2Vec2不是指针”,但如果我把它看出来,事情似乎很好,这个错误是什么意思? – glenstorey 2012-04-18 08:06:45
这假设B和C在A的完全相反侧。如果不是,你只需要重复C的前三行以得到impulseC。 – iforce2d 2012-04-18 08:15:56
固定线2 - 它应该是一个点而不是' - >'。 @ iforce2d - 问题说对象a在中间。 – jrtc27 2012-04-18 09:28:36
+1:爱猫。 – RBarryYoung 2012-04-18 03:19:11
谢谢。如果编程不起作用,我会进入美术。 – glenstorey 2012-04-18 03:34:04