2017-04-14 3 views
0

제목에서 말씀 드렸듯이 PixiJS의 고정 프레임 속도는 어떻게 고정합니까? 나는 그보다 더 많은 프레임을 싶지 않아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

@Remind'myRenderFunction'는 게임의 모든 것을 포함해야합니다. Pixi.JS 티커는 항상 모니터의 재생 빈도 (아마 60fps)로 실행되는'requestAnimationFrame'을 사용합니다. 25를 원하면'setTimeout' 또는'setInterval'을 사용하여 수동으로 25fps로 그려야합니다. – wavemode

+0

실제로 PixiJS 장면을 그리려면 myRenderFunction에서 무엇을 호출해야합니까? PixiJS가 자동으로 자체 작업을하고 setTimeout 외부에서 장면을 그리는 것을 멈추게하려면 어떻게해야합니까? – Rewind