Esta é uma boa implementação do gameloop?

Eu implementei um gameloop em Flash / Actionscript / Starling e quero lançá-lo em você para ver se esta é uma implementação válida. Eu queria ter uma abordagem passo a passo variável.

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();
    }
}

O que eu tenho é que eu tenho uma velocidade constante (mais ou menos).

Minha pergunta é se há uma abordagem melhor para que os movimentos pareçam mais suaves.

O que é realmente surpreendente para mim é que mesmo tu o FPS é praticamente constante (60FPS) o movimento é por vezes irregular e mais suave do que com o gameloop ingénuo.

questionAnswers(2)

yourAnswerToTheQuestion