2010-12-06 36 views
2

很多道歉,如果这已被回答,但我无法完全找到我要找的东西。将旋转度转换为Box2D的冲动

我有一个Box2D动态物体,我使用线性冲动来将它变成抛射物。所以当我点击屏幕上的任何地方时,我希望身体投射到触摸位置。我并不关心这个力量,只是角度。

我已经让我的精灵旋转指向触摸位置,所以我可以检测到初始旋转角度,但是如何将此角度转换为“b2Vec2”值,以便我可以精确启动身体45度?像这样:

float rotationValue = 45.0f; 
b2Vec2 vect = ?????? 
b2Vec2 PointVector = body->GetPosition(); 
body->ApplyLinearImpulse(vect, PointVector); 

任何线索将不胜感激。

感谢

回答

6

叹息 - 这就是为什么你要注意你的数学课:)

转换角度的Vect超级简单:

float angle = 45.0f; 
b2Vec2 vect = b2Vec2(cos(angle), sin(angle)); 
+0

也许我错了,但你不需要在这里转换为弧度? – Zevan 2010-12-10 00:00:37