根据旋转移动对象

时间:2016-03-23 00:19:19

标签: c++ allegro5

我试图让图像向前移动,因为它的旋转存储为弧度,从度数(bottomRotation)转换而来。

到目前为止,我要检索我这样做的位置:

double rotation = bottomRotation * (3.14159 / 180);
posX += speed * cos(rotation);
posY += speed * sin(rotation);

我的问题是图像垂直于弧度移动。

2 个答案:

答案 0 :(得分:0)

如果您的物体垂直于您所感知的旋转运动,则您的角度偏离pi超过2。这可能是由于在对atan2的调用中交换d x和d y引起的。

答案 1 :(得分:-2)

尝试

double rotation = bottomRotation * (3.14159 / 270);

如果不起作用(或者您向相反方向移动),请尝试90.