Nach @ wavemodes Kommentare über PixiJS mit requestAnimationFrame Ich denke, ich muss das folgende tun. (Hinweis: Wenn es eine bessere Lösung gibt, posten Sie sie bitte, andernfalls werde ich dies als die Antwort markieren.)
Stoppen Sie im Grunde jede Animation, wenn wir die Bildrate überschreiten.
var g_TICK = 40; // 1000/40 = 25 frames per second
var g_Time = 0;
Dann später, wenn wir die Animation ein:
// 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;
});
Dies nutzt nicht den normalen 'g_App.ticker.add (function (delta) {/ * Meine Animation hier * /}) "Weg der Dinge. Was setze ich in myRenderFunction ein, um die Leinwand in der PixiJS-Umgebung zu malen? – Rewind
@Rewind 'myRenderFunction' sollte alles in deiner Spielschleife enthalten. Der Pixi.JS Ticker verwendet 'requestAnimationFrame', der immer mit der Aktualisierungsrate Ihres Monitors läuft (wahrscheinlich 60 fps). Wenn Sie 25 wollen, müssen Sie mit "setTimeout" oder "setInterval" manuell mit 25 fps zeichnen. – wavemode
Was rufe ich in myRenderFunction auf, um die PixiJS-Szene tatsächlich zu zeichnen? Wie verhindere ich, dass PixiJS automatisch sein eigenes Ding macht und die Szene außerhalb von setTimeout zeichnet? – Rewind