gameloop()方法的不理解的地方
function gameLoop() {
?? ?window.requestAnimFrame(gameLoop);
?? ?var now = Date.now();
?? ?deltaTime = now - lastTime;
?? ?lastTime = now;
?? ?fillCanvas();
?? ?drawGirl();
?? ?drawStars();
?? ?aliveUpdate();
}
這個方法一開始就執行了計時器,而計時器是執行gameloop方法,相當于一個新的gameloop方法,那為什么還會執行計時器后面的部分?還有這里的計時器為什么不需要每次執行方法前清除呢?
2016-03-21
你把requestAnimFrame視作setTimeOut(funcname, time)就行,是個異步執行的。只不過requestAnimFrame可以自己選擇最佳延遲間隔時間(與屏幕刷新時機同步)而已。