2

如果之前已经回答过这个问题,我深表歉意,但我无法完全找到我想要的东西。

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

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

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

任何线索将不胜感激。

谢谢

4

1 回答 1

6

叹息——这就是为什么你应该在数学课上注意:)

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

float angle = 45.0f;
b2Vec2 vect = b2Vec2(cos(angle), sin(angle));
于 2010-12-06T18:30:51.853 回答