设置超时代码无法正常工作



我想设置超时并在循环结束时停止函数。

这是我的代码,底部有设置超时函数。

//Drawing the car turning and changing speed
function drawCar() {
var cx = canvas.width/2;
var cy = canvas.height/2;
var totalcars = 2;
var car_distance = 100;
   for (i = 0; i <= totalcars; i++) {
          // Get random positions for stars.
          var x1 = Math.floor(Math.random() * 400);
          var y1 = Math.floor(Math.random() * 400);
          if (x1 >= 190 && y1 >= 0) {
          x1 += (speed1 * mod1) * Math.cos(Math.PI / 180 * angle1);
          y1 += (speed1 * mod1) * Math.sin(Math.PI / 180 * angle1);
          context.save();
          context.translate(x1, y1);
          context.rotate(Math.PI / 180 * angle1);
          context.drawImage(car1, -(car1.width / 1), -(car1.height / 1));
          context.restore();
          }
}
if (i == totalcars) {
    return;
}
setTimeout(drawCar, 2000);
}

>setTimeout用于指定函数将在未来一段时间内启动;您编写的内容可确保drawCar始终再次执行(暂停后)。

如果删除对 setTimeout 的调用,则函数将在循环结束时停止。 (最后的if毫无意义:函数将以任何一种方式返回。

最新更新