Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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 PixiJS-设置固定帧速率_Javascript_Frame Rate_Pixi.js - Fatal编程技术网

Javascript PixiJS-设置固定帧速率

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

正如标题所说,如何为小精灵设定25 fps的固定帧速率

以下是我的设置:

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环境中实际绘制画布呢?@revind
myRenderFunction
应该包含游戏循环中的所有内容。Pixi.JS Ticker使用
requestAnimationFrame
,它将始终以监视器的刷新率(可能是60 fps)运行。如果您想要25,那么您必须使用
setTimeout
setInterval
以25 fps的速度手动绘制。我在myRenderFunction中调用什么来实际绘制PixiJS场景?如何阻止PixiJS自动完成自己的工作并在setTimeout之外绘制场景?@从API中回放,我看到PixiJS渲染器仍然使用requestAnimationFrame。所以事实上我不认为你能以25 fps的速度画画。这不只是设定了动画的帧速率吗?画布的渲染如何?它不是还有60帧吗?