这里是新手。我正在尝试使用滴答处理程序将FPS从默认的60、72 90调整为30。在花了一些时间试图理解游戏循环,FPS和在这种情况下的滴答处理程序之后,我仍然无法掌握如何实现这一点。这是我一直在摆弄的代码,但没有乐趣。
AFRAME.registerComponent('FPS-30', {
init: function () {
this.tick = AFRAME.utils.throttleTick(this.tick, 33, this);
},
tick: function (t, dt) {}
});
和
AFRAME.registerComponent('FPS-30', {
tick: utils.throttleTick(function(t, dt){}, 33);
});
如here和here中所述。我已经将该组件附加到a-scene元素以及a-entity上,但到目前为止没有成功!有人可以阐明如何实现这一目标吗?谢谢!
您无法将FPS锁定为特定值。 A帧渲染循环在2D模式下以requestAnimationFrame
(通常为60)定义的速率触发,在VR模式下以60、72、90 ...可用耳机的固有刷新率触发。不建议应用程序进行干扰,因为如果不正确同步,可能会发生时间敏感的操作,例如帧提交,重新投影或传感器读数,可能无法按预期工作。
尽管您可以通过tick
控制组件throttleTick方法的触发率。下面是它工作的一个例子。注意控制台消息以毫秒为单位打印两次滴答调用之间的时间:
https://glitch.com/edit/#!/congruous-weak-thumb?path=index.html%3A12%3A10