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