Java 跟踪速度

Java 跟踪速度,java,libgdx,Java,Libgdx,我现在的动议是经过计算的 //moveX and Y are normalized moveX = moveX * time * speed; moveY = moveY * time * speed; 当然,这会导致一个非常僵硬的运动,它只是停下来又走 跟踪加速以产生加速/减速效果的有效方法是什么?我的游戏没有重力,因为它是自上而下的。有单独的当前速度和目标速度变量 例如,在每次调用paintGraphics时,使用恒定加速度将当前速度收敛到目

我现在的动议是经过计算的

        //moveX and Y are normalized
        moveX = moveX * time * speed;
        moveY = moveY * time * speed;
当然,这会导致一个非常僵硬的运动,它只是停下来又走


跟踪加速以产生加速/减速效果的有效方法是什么?我的游戏没有重力,因为它是自上而下的。

有单独的当前速度和目标速度变量

例如,在每次调用paintGraphics时,使用恒定加速度将当前速度收敛到目标速度


更新位置应该是posX+=current_speedX;不要在每次调用时将时间和速度相乘进行积分,因为这不会扩展为非线性运动。

您需要将时间限制为一个较短的值,并使用恒定加速度函数更改速度。所以你可以模拟重力或其他加速度函数

作为重力的一个例子,其中g是仅y轴的重力加速度。SpeedX是常数。间隔为100毫秒,相当于0.1秒。加速效应的快速变化

while (true) {
    moveX = moveX * 100 * speedX;
    moveY = moveY * 100 * speedY;
    speedY = speedY + g * 0.1;
    Thread.sleep(100);
}

你很可能在寻找一种放松功能,类似于一种没有重力的自上而下的游戏。我如何使一个物体缓慢地加速和减速,而不是一下子全部加速和减速。