我试图这样做,如果你是,让我们说,向右移动,你放开你的箭头键,你会减速然后停止,而不是立即停止。我是这样做的:
//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。非常感谢这方面的任何帮助!
答案 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}}
也许你忘记了循环。请粘贴更多代码。