我有 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;