Javascript PixiJS-设置固定帧速率
正如标题所说,如何为小精灵设定25 fps的固定帧速率 以下是我的设置:Javascript PixiJS-设置固定帧速率,javascript,frame-rate,pixi.js,Javascript,Frame Rate,Pixi.js,正如标题所说,如何为小精灵设定25 fps的固定帧速率 以下是我的设置: g_App = new PIXI.Application(800, 600, { backgroundColor: 0x1099bb }); document.getElementById("canvas-div").appendChild(g_App.view); 我不想再做更多的帧了。25fps是每帧40毫秒。所以,每一帧,你都应该打电话 设置超时(myRenderFunction,40) 如果您希望屏幕每秒更新25
g_App = new PIXI.Application(800, 600, { backgroundColor: 0x1099bb });
document.getElementById("canvas-div").appendChild(g_App.view);
我不想再做更多的帧了。25fps是每帧40毫秒。所以,每一帧,你都应该打电话 设置超时(myRenderFunction,40)
如果您希望屏幕每秒更新25次。在@wavemode使用requestAnimationFrame对PixiJS发表评论之后,我想我可能必须执行以下操作。(注意:如果有更好的解决方案,请发布,否则我会将此标记为答案。) 基本上,如果超过帧速率,请停止任何动画
var g_TICK = 40; // 1000/40 = 25 frames per second
var g_Time = 0;
然后在稍后设置动画时:
// Listen for animate update
g_App.ticker.add(function (delta) {
// Limit to the frame rate
var timeNow = (new Date()).getTime();
var timeDiff = timeNow - g_Time;
if (timeDiff < g_TICK)
return;
// We are now meeting the frame rate, so reset the last time the animation is done
g_Time = timeNow;
// Now do the animation
// rotate the container!
// use delta to create frame-independent tranform
container.rotation -= 0.01 * delta;
g_Bunny0.x += 1;
});
//侦听动画更新
g_应用程序代码添加(功能(增量){
//限制帧速率
var timeNow=(新日期()).getTime();
var-timeDiff=timeNow-g_时间;
如果(时间差
这不使用普通的g_App.ticker.add(函数(delta){/*My animation here*/})代码>事情的方式。那么,我应该在myRenderFunction中添加什么来在PixiJS环境中实际绘制画布呢?@revindmyRenderFunction
应该包含游戏循环中的所有内容。Pixi.JS Ticker使用requestAnimationFrame
,它将始终以监视器的刷新率(可能是60 fps)运行。如果您想要25,那么您必须使用setTimeout
或setInterval
以25 fps的速度手动绘制。我在myRenderFunction中调用什么来实际绘制PixiJS场景?如何阻止PixiJS自动完成自己的工作并在setTimeout之外绘制场景?@从API中回放,我看到PixiJS渲染器仍然使用requestAnimationFrame。所以事实上我不认为你能以25 fps的速度画画。这不只是设定了动画的帧速率吗?画布的渲染如何?它不是还有60帧吗?