Это хорошая реализация gameloop

Я реализовал gameloop во Flash / Actionscript / Starling и хочу бросить его вам, чтобы увидеть, является ли это допустимой реализацией. Я хотел иметь подход с переменным временным шагом.

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

То, что я получил, - то, что у меня есть постоянная скорость (более или менее).

Мой вопрос: есть ли лучший подход, чтобы движения выглядели еще более плавными?

Что на самом деле удивляет меня, так это то, что даже если FPS довольно постоянный (60 FPS), движение иногда неровное, но более плавное, чем с наивным геймплеем.

Ответы на вопрос(2)

Ваш ответ на вопрос