2014-12-03 92 views
0

我想在循環結束時設置超時並停止某個功能。設置超時代碼無法正常工作

這是我在底部設置超時函數的代碼。

//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); 
} 

回答

0

setTimeout用於指定函數將是開始在未來一定的時間;您所寫的內容可確保您的drawCar將始終再次執行(暫停後)。

如果您刪除對setTimeout的呼叫,則當循環結束時,您的功能將停止。 (而if最後是毫無意義的:功能將返回任一方式。)

+0

嘿斯科特,我確實設置了時間,但汽車隨機閃爍我不想汽車消失,或出現在每個頂部其他,如果你想看到它,我有它在Jsbin上:http://jsbin.com/zewikarojo/5/edit – 2014-12-03 21:50:33

+0

*不要*調用'setTimeout';這只是讓汽車吸引*更多*經常。 – 2014-12-03 22:06:49