我正在开发一个统一的赛车游戏,我写了以下JAVASCRIPT代码来移动汽车。我能够使用我的逻辑显示汽车的速度,但不能显示换档。所以帮我纠正一下。齿轮变量仅在文本区域中显示“0”。但是在检查条件后没有增加一个。
if(Input.GetKeyDown("right")) {
transform.Rotate(0, 1, 0);
}
if(Input.GetKeyDown("left")) {
transform.Rotate(0, -1, 0);
}
switch(currentMode) {
case ShipModes.Idle:
if(Input.GetKeyDown(KeyCode.W)) {
currentMode = ShipModes.Moving;
}
if(Input.GetKeyDown(KeyCode.S)) {
currentMode = ShipModes.Reverse;
}
break;
case ShipModes.Moving:
if(Input.GetKeyDown(KeyCode.S)) {
currentMode = ShipModes.Idle;
}
break;
case ShipModes.Reverse:
if(!Input.GetKey(KeyCode.S)) {
currentMode = ShipModes.Idle;
}
break;
}
//Movement phase
switch(currentMode) {
case ShipModes.Idle:
currentSpeed = Mathf.Lerp(currentSpeed, 0, Time.deltaTime);
break;
case ShipModes.Moving:
currentSpeed = Mathf.Lerp(currentSpeed, maxSpeed, Time.deltaTime); //Or MoveTowards
break;
case ShipModes.Reverse:
currentSpeed = Mathf.Lerp(currentSpeed, maxReverseSpeed, Time.deltaTime); //Or MoveTowards
break;
}
//Actually move
score.text="SPEED "+Mathf.Abs(currentSpeed).ToString("F0");
//Gear change display starts from here
var gr=0;
var sp=currentSpeed;
while(gr!=5)
{
transform.position += transform.forward * currentSpeed * Time.deltaTime;
if(currentSpeed>=sp)
{
gear.text="GEAR "+gr;
}
sp=sp+5;
gr=gr+1;
}