问答详情
源自:3-2 思考题

gameloop()方法的不理解的地方

function gameLoop() {
    window.requestAnimFrame(gameLoop);
    var now = Date.now();
    deltaTime = now - lastTime;
    lastTime = now;

    fillCanvas();
    drawGirl();

    drawStars();

    aliveUpdate();
}

这个方法一开始就执行了计时器,而计时器是执行gameloop方法,相当于一个新的gameloop方法,那为什么还会执行计时器后面的部分?还有这里的计时器为什么不需要每次执行方法前清除呢?

提问者:W_littlewhite 2016-02-04 21:43

个回答

  • Sens
    2016-03-21 17:02:51

    你把requestAnimFrame视作setTimeOut(funcname, time)就行,是个异步执行的。只不过requestAnimFrame可以自己选择最佳延迟间隔时间(与屏幕刷新时机同步)而已。