Ist dies eine gute Implementierung des Gameloops?

Ich habe einen Gameloop in Flash / Actionscript / Starling implementiert und möchte ihn auf Sie werfen, um zu sehen, ob dies eine gültige Implementierung ist. Ich wollte einen variablen Zeitschritt-Ansatz haben.

private var _deltaTime:Number = 0;
private var _lastTime:Number = 0;
private var _speed = 1000 / 40;

private function onEnterFrame() {
    var now = new Date().getTime();
    var delta = now - _lastTime;
    _deltaTime += delta - _speed;
    _lastTime = now;

    //skip if frame rate to fast
    if (_deltaTime <= -_speed) {
        _deltaTime += _speed;
        return;
    }
    update();
}

private function update() {
    updateGameState();

    if (_deltaTime >= _speed) {
        _deltaTime -= _speed;
        update();
    }
}

Was ich soeben bekommen habe, ist, dass ich eine konstante Geschwindigkeit habe (mehr oder weniger).

Meine Frage ist, ob es einen besseren Ansatz gibt, damit die Bewegungen noch flüssiger erscheinen.

Was mich wirklich überrascht ist, dass selbst wenn die FPS ziemlich konstant sind (60FPS), die Bewegung manchmal holprig und doch sanfter ist als mit dem naiven Gameloop.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage