我正在尝试基于requestAnimationFrame编写一个基本的游戏循环。对requestAnimationFrame的回调传递带有一个timestamp参数,据我所知,这是自页面加载以来的时间(以毫秒为单位)。建立游戏循环时,我假设每次调用requestAnimationFrame时,时间戳值始终会上升,基于此,我可以计算帧之间的时间增量。我唯一担心的是,如果应用程序长时间运行,则此时间戳值将在某个时候达到其极限。
有这样的限制吗?要实现此目标,必须花费多少现实时间?达到限制后,时间戳值会怎样?
答案 0 :(得分:0)
我认为自页面加载以来它不会返回毫秒,而是返回DOMHighResTimeStamp
“ requestAnimationFrame()
开始执行回调函数时”。
当需要更新动画时要调用的函数 下次重涂。回调函数传递一个参数,一个
DOMHighResTimeStamp
类似于由返回的performance.now()
,指示何时requestAnimationFrame()
开始执行回调函数。
这虽然是一个问题,所以我也要说,我不会担心这种情况下的溢出,因为该单位是double
,而且我很确定这意味着64位精度。达到year 2038 problem花费了60年,并且具有32位精度。我的数学可能已经关闭,但我只是不必担心溢出。当时间戳记开始崩溃时,我们可能会遇到更大的问题。
答案 1 :(得分:0)
传递给requestAnimationFrame回调的是DOMHighResTimestamp,实际上其来源设置为窗口("the time when the browsing context is first created")中的页面加载,并且确实表示此后的毫秒数。
根据the specs,您有大约 285,616年才开始失去精度。