我正在制作一个简单的游戏,我遇到了一个问题,在最小化窗口几秒后,返回时游戏以帧速率的两倍运行,之后甚至更多,每次增加60。我的游戏循环看起来像这样:
function disp(){
update();
draw();
requestAnimationFrame(disp);
}
requestAnimationFrame(disp);
更新和绘图都不包括requestAnimationFrame。我已经在firefox和chrome上尝试了这个,结果相同。任何想法为什么会这样?我已经使用了相同的方法很多次,这是第一次发生这种情况。
编辑:您可以在http://jsfiddle.net/5ttGs/找到它的小提琴 到目前为止,这种情况非常简单,暂停了我的进步。点击几次,享受10000 + FPS游戏
答案 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/