2017-04-14 26 views
0

タイトルによると、PixiJSの固定フレームレートはどのようにして25fpsに設定されますか?私はそれよりも多くのフレームを行うにはしたくないPixiJS - 固定フレームレートの設定

g_App = new PIXI.Application(800, 600, { backgroundColor: 0x1099bb }); 
document.getElementById("canvas-div").appendChild(g_App.view); 

は、ここに私の設定です。

答えて

0

requestAnimationFrameを使ったPixiJSに関する@wavemodeのコメントの後、私は以下のことをしなければならないかもしれません。 (注:より良い解決策がある場合は投稿してください。それ以外の場合は答えとしてマークします)。

フレームレートを超えている場合は、基本的にアニメーションを停止してください。

後、私たちは、アニメーション設定するときに次に
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; 
}); 
0

25FPSはフレームあたり40ミリ秒です。あなたはスクリーンが毎秒25回を更新したいのであれば、すべてのフレームは、あなたが

のsetTimeout(myRenderFunction、40)

を呼び出す必要があります。

+0

これは通常 'g_App.ticker.add(関数(デルタ){ここに/ *私のアニメーションを* /})を使用していませんが;物事の方法。では、実際にPixiJS環境でキャンバスをペイントするには、myRenderFunctionに何を配置しますか? – Rewind

+0

@Rewind 'myRenderFunction'はゲームのループ内のすべてを含んでいなければなりません。 Pixi.JSティッカーは 'requestAnimationFrame'を使用します。これは常にモニターのリフレッシュレート(おそらく60fps)で動作します。 25を望むなら、 'setTimeout'または' setInterval'で25fpsで手動で描画する必要があります。 – wavemode

+0

実際にPixiJSシーンを描画するためにmyRenderFunctionで何を呼びますか? PixiJSが自動的に独自のことをやって、setTimeoutの外でシーンを描画するのを止めるにはどうすればいいですか? – Rewind

関連する問題