Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript requestAnimationFrame刷新率_Javascript - Fatal编程技术网

Javascript requestAnimationFrame刷新率

Javascript requestAnimationFrame刷新率,javascript,Javascript,我正在使用requestAnimationFrame在游戏中绘制玩家。其中一名球员的移动速度比其他人都快。我和他核实了一下,他告诉我他的显示器刷新频率为120hz。我假设这意味着has可以比其他方法更快地处理帧,从而提高移动速度。有什么办法可以解决这个问题吗 谢谢 使用的垫片层如下所示: // shim layer with setTimeout fallback window.requestAnimFrame = (function(){ return window.requestAni

我正在使用requestAnimationFrame在游戏中绘制玩家。其中一名球员的移动速度比其他人都快。我和他核实了一下,他告诉我他的显示器刷新频率为120hz。我假设这意味着has可以比其他方法更快地处理帧,从而提高移动速度。有什么办法可以解决这个问题吗

谢谢

使用的垫片层如下所示:

// shim layer with setTimeout fallback
window.requestAnimFrame = (function(){
  return  window.requestAnimationFrame       || 
          window.webkitRequestAnimationFrame || 
          window.mozRequestAnimationFrame    || 
          window.oRequestAnimationFrame      || 
          window.msRequestAnimationFrame     || 
          function(/* function */ callback, /* DOMElement */ element){
            window.setTimeout(callback, 1000 / 60);
          };
})();

requestAnimationFrame
没有保证速率。如果它愿意,它可以以2赫兹的频率发射


您需要使游戏循环功能独立于调用之间的时间。大多数游戏都是通过计算渲染步骤之间经过的毫秒数,然后根据经过的时间设置游戏对象的动画。

将requestAnimationFrame视为更新/重画的机会。您仍然应该根据经过的时间来确定更新过程


例如,如果一个玩家可以在1秒内移动100px,而皇家空军每.1秒发射一次,你需要每次更新10px,那么就没有保证的帧速率。但是,您可以使用一个简单的计时器强制执行近似的帧速率:

正确,
requestAnimationFrame
没有保证的速率,但是您可以使用其回调的timestamp参数测量
requestAnimationFrame
调用之间的时间差,然后创建一个动画,计算在这段时间内应该发生什么


此代码笔链接显示了一个例子。

不要将游戏逻辑放在绘图循环中。你的绘图代码应该只轮询游戏状态,在一个单独的循环中更新。此外,120Hz刷新率是物理监视器可以更新其像素的速率。用户浏览器更新其绘图状态的速度可能会慢得多,这可能受到CPU性能、内存、总线速度等的限制。谢谢。我有两个循环,一个用于绘图,一个用于更新游戏逻辑。