我对java很陌生,我在做一些我认为相当简单的事情时遇到了一些重大麻烦。无论如何,到目前为止,我有一个角色对象,我只想在任何方向上以最大速度5移动,因为我们知道如果我将x速度和y速度设置为最大5,那么它可以更快因毕达哥拉斯定理而产生的角度。所以在我的KeyInput类中,我设置了一个控制播放器角度的方法,这种方法非常好。
无论如何,我以为我知道三角学,但现在我意识到我不知道。角度设置为360度以上,当超过360度时,我从值中减去360,即新角度。当我按住箭头键和向前按钮使玩家开始动作时,我得到一个圆圈,但它向左上方螺旋。帮助
这是我的x速度处理程序,y是相同的但是正弦被翻转为余弦并且余弦被翻转为正弦:
public double handleAngledXVelocity(double tempAngle) {
double handledvelX;
if (movingForward == true) {
if (tempAngle > 270.0 && tempAngle <= 360.0) {
tempAngle = tempAngle - 270.0;
handledvelX = (-5 * Math.cos(tempAngle * Math.PI / 180));
} else if (tempAngle > 180.0 && tempAngle <= 270.0) {
tempAngle = tempAngle - 180.0;
handledvelX = (-5 * Math.sin(tempAngle * Math.PI / 180));
} else if (tempAngle > 90.0 && tempAngle <= 180.0) {
tempAngle = tempAngle - 90.0;
handledvelX = (5 * Math.cos(tempAngle * Math.PI / 180));
} else {
handledvelX = (5 * Math.sin(tempAngle * Math.PI / 180));
}
} else {
handledvelX = 0.0;
}
return handledvelX;
}