在Java

时间:2016-05-24 07:38:30

标签: java

我试图这样做,如果你是,让我们说,向右移动,你放开你的箭头键,你会减速然后停止,而不是立即停止。我是这样做的:

//If you clicked right arrow key and you're not going 
//Faster then the max speed
    if(moveRight && !(vel.x >= 3)){
        vel.x += movementSpeed;
//If you let go of arrow key, slow down at 3/2 the speed you were moving
    }else if(vel.x >= 0 && !moveRight){
        vel.x -= movementSpeed * 1.5f;
    }

但是,出于某种原因,这个有时有效。其他时候,你会注意到速度大约为0.00523329或类似的东西。我不明白为什么,因为else if语句说减速直到你基本上等于0。 我需要速度达到0。非常感谢这方面的任何帮助!

1 个答案:

答案 0 :(得分:1)

movementSpeed * 1.5f声明说要跟踪boolean moveRight = false; Velocity vel = new Velocity(); vel.x = 4; float movementSpeed = 3; while (vel.x != 0) { if(moveRight && !(vel.x >= 3)) { vel.x += movementSpeed; } else if(vel.x >= 0 && !moveRight) { vel.x -= movementSpeed * 1.5f; } if (vel.x <= 0) { vel.x = 0; } } System.out.println(vel.x); ,仅此而已。

以下代码始终打印0.0:

{{1}}

也许你忘记了循环。请粘贴更多代码。