在画布应用程序上限制帧率

时间:2013-10-22 11:13:31

标签: javascript html5 canvas frame-rate

我已经建立了一个非常基本平台“引擎”:
[小提琴已删除]

当您使用箭头键移动时 - 帧速率在精神上很快!

我曾尝试使用以下方法限制帧速率:

var fps = 30;
var now;
var then = Date.now();
var interval = 1000/fps;
var delta;

然后在绘图功能中:

now = Date.now();
delta = now - then;
if (delta > interval) {
    //redrawing scene here
    then = now - (delta % interval);
}

但不幸的是,这仍然具有相同的帧速率但性能下降(如帧跳过而不是帧速率限制)。

请帮帮我! :(

I'll give you a cookie!

1 个答案:

答案 0 :(得分:1)

你应该检查一下你的GameLoop功能。就目前而言,你要求每秒1000帧。糟糕!

当我把它编辑成这个时,它给了我大约33 fps。

    GameLoop: function() { //initialise game loop
        Game.Vars.GameLoop = setTimeout(function() { 
            requestAnimationFrame(Game.Functions.Update, Game.C); 
        }, 30);
    },

你有30个写为1 .. :) Choc-chip,如果没关系的话。如果没有,我会吃白巧克力和覆盆子!

编辑: Effing Hell,你做到了! - 必须喜欢那些为自己写的信息。 :d