将旋转度转换为Box2D脉冲

时间:2010-12-06 18:14:05

标签: cocos2d-iphone box2d box2d-iphone

如果之前已经回答了很多道歉,但我无法找到我想要的东西。

我有一个Box2D动态身体,我应用线性冲动将其变成一个射弹。因此,当我点击屏幕上的任何地方时,我希望将身体投射到触摸位置。我不关心力量,只关注角度。

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

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

非常感谢任何线索。

由于

1 个答案:

答案 0 :(得分:6)

叹息 - 这就是为什么你应该在你的Math课程中注意:)

将角度转换为vect非常简单:

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