제목에서 말씀 드렸듯이 PixiJS의 고정 프레임 속도는 어떻게 고정합니까? 나는 그보다 더 많은 프레임을 싶지 않아PixiJS - 고정 프레임 속도 설정
g_App = new PIXI.Application(800, 600, { backgroundColor: 0x1099bb });
document.getElementById("canvas-div").appendChild(g_App.view);
:
여기 내 설정입니다.
제목에서 말씀 드렸듯이 PixiJS의 고정 프레임 속도는 어떻게 고정합니까? 나는 그보다 더 많은 프레임을 싶지 않아PixiJS - 고정 프레임 속도 설정
g_App = new PIXI.Application(800, 600, { backgroundColor: 0x1099bb });
document.getElementById("canvas-div").appendChild(g_App.view);
:
여기 내 설정입니다.
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;
});
25FPS는 프레임 당 40 밀리 초입니다. 화면이 초당 25 번 업데이트 할 경우에 따라서, 매 프레임마다, 당신은
에서는 setTimeout (myRenderFunction, 40)
를 호출해야합니다.
이 정상적인'g_App.ticker.add 사용하지 않습니다 (기능 (델타) {여기에/* 내 애니메이션을 * /}) ; '사물의 방법. PixiJS 환경에서 캔버스를 실제로 페인트하려면 myRenderFunction에 무엇을 넣어야합니까? – Rewind
@Remind'myRenderFunction'는 게임의 모든 것을 포함해야합니다. Pixi.JS 티커는 항상 모니터의 재생 빈도 (아마 60fps)로 실행되는'requestAnimationFrame'을 사용합니다. 25를 원하면'setTimeout' 또는'setInterval'을 사용하여 수동으로 25fps로 그려야합니다. – wavemode
실제로 PixiJS 장면을 그리려면 myRenderFunction에서 무엇을 호출해야합니까? PixiJS가 자동으로 자체 작업을하고 setTimeout 외부에서 장면을 그리는 것을 멈추게하려면 어떻게해야합니까? – Rewind