【发布时间】:2021-06-23 13:12:52
【问题描述】:
我正在学习编码。
我制作了以下脚本,如果执行将根据当前状态打开或关闭 raveMode。我的目标是让它在 raveMode 开启时重复一个 while 循环,直到它再次被关闭,然而,它似乎只能部分工作。 代码如下:
Delay = (ms) => new Promise(res => setTimeout(res, ms));
raveMode = !raveMode
print(raveMode)
while (raveMode) {
SetVehicleLights(playerInfo.vehicle, 2);
await Delay(300);
SetVehicleLights(playerInfo.vehicle, 0);
}
基本上,SetVehicleLights(..., 2) 会打开车灯,SetVehicleLighs(..., 0) 会关闭它们。但是,代码仅在 raveMode 开启时打开灯,并在 raveMode 关闭时关闭它们,而不是反复打开和关闭它们。
我在下面的代码中使用了相同的脚本,并且灯被打开和关闭一次,如本例所示:
if (!GetIsVehicleEngineRunning(playerInfo.vehicle)) {
SetVehicleLights(playerInfo.vehicle, 2);
await Delay(300);
SetVehicleLights(playerInfo.vehicle, 0);
}
【问题讨论】:
-
如果 ravemode 为真,我预计灯会亮起,延迟 300 秒,灯会瞬间关闭或可能根本不可见,然后灯会再次亮起。所以看起来灯刚刚亮着。
-
谢谢你,@James,你是对的。我在关灯后添加了一个新的延迟。
标签: javascript loops while-loop fivem