1

我已经建立了一个非常基本的平台“引擎”:
[Fiddle Removed]

当您使用箭头键移动时 - 帧速率非常快!

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

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

然后在draw函数中:

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

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

请帮我!:(

I'll give you a cookie!
4

1 回答 1

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,如果可以的话。如果没有,我会吃白巧克力和覆盆子!

编辑:见鬼,你成功了!- 一定要喜欢那些为自己写的信息。:D

于 2013-10-22T11:58:22.560 回答