requestAnimationFrame调用超过60FPS

时间:2014-01-30 09:13:26

标签: javascript html5 requestanimationframe game-loop

我正在制作一个简单的游戏,我遇到了一个问题,在最小化窗口几秒后,返回时游戏以帧速率的两倍运行,之后甚至更多,每次增加60。我的游戏循环看起来像这样:

function disp(){
update();
draw();
requestAnimationFrame(disp);
}
requestAnimationFrame(disp);

更新和绘图都不包括requestAnimationFrame。我已经在firefox和chrome上尝试了这个,结果相同。任何想法为什么会这样?我已经使用了相同的方法很多次,这是第一次发生这种情况。

编辑:您可以在http://jsfiddle.net/5ttGs/找到它的小提琴 到目前为止,这种情况非常简单,暂停了我的进步。点击几次,享受10000 + FPS游戏

1 个答案:

答案 0 :(得分:0)

在cocco的帮助下解决了这个问题。每次单击画布时,基本上onclick事件都会调用disp函数。因为disp函数中有requestAnimationFrame个框架,所以它每秒调用两次,导致框架涌入。为了解决这个问题我只是摆脱了干扰 canvas.addEventListener

function mouse_up() {
var matches = 0;
var overlap = 69;
mouse.up = false;
console.log("clicked", mouse.x,mouse.y);
disp();
}

您可以在此处找到结果:http://jsfiddle.net/5ttGs/