使用速度和角度计算 x 和 y 坐标应该改变多少



我有 2 个值 - 物体的速度和角度。我需要创建一个函数,该函数使用这两个参数来计算刷新时它在 X 轴和 Y 轴上应该移动多少。

例:

public Vector getMoveVectorFromSpeedAndAngle(float speed, float angle) {
//code I need
}
myBody.x = getMoveVectorFromSpeedAndAngle(myBody.speed, myBody.angle).x;
myBody.y = getMoveVectorFromSpeedAndAngle(myBody.speed, myBody.angle).y;

你的问题是什么?

如何创建这样的功能?

你如何存储角度?弧度还是度数?

我使用度,但如果需要,我可以切换到弧度。

使用弧度:

public Vector getMoveVectorFromSpeedAndAngle(float speed, float angle) {
float x = speed * (float)Math.cos(angle);
float y = speed * (float)Math.sin(angle);
return new Vector(x, y);
}

而且你可能需要增加你的身体坐标给定的数量,而不是分配给它:

myBody.x += getMoveVectorFromSpeedAndAngle(myBody.speed, myBody.angle).x;
myBody.y += getMoveVectorFromSpeedAndAngle(myBody.speed, myBody.angle).y;

最新更新