以指定的最大速度创建逼真的x和y运动?

时间:2015-07-29 21:02:43

标签: java velocity trigonometry motion

我对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;
}

0 个答案:

没有答案