我正在尝试这样做,因此,如果您可以说,例如,向右移动并放开箭头键,您将放慢速度,然后停止,而不仅仅是立即停止。这是我的做法:
//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。在这方面的任何帮助都非常感谢! 最佳答案
else if
语句表示要跟踪movementSpeed * 1.5f
,仅此而已。
以下代码始终显示0.0:
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);
也许您忘记了循环。请粘贴更多代码。