O JavaScript fornece um cronômetro de alta resolução?

O JavaScript fornece um cronômetro de alta resolução?

Eu escrevi alguns mecanismos de jogo do zero, alguns em C, outros em Java e outros em Flash. Eu sempre sigo o mesmo modelo básico quando se trata de animações e gráficos interativos. Crie uma classe / estrutura básica com o seguinte design:

void init() { /* Called once, preload essential resources here. */ }
void update(double time) { /* Updates game/animation state using high resolution time. */ }
void render(double time) { /* Updates screen graphics using high resolution time. */ }

void run()
{
    double time;
    init();
    while (!done)
    {
        time = queryTime();
        update(time);
        render(time);
    }
}

@Time é tão importante para suavizar animações e cálculos de estado do jogo. No código nativo do Windows, eu usoQueryPerformanceCounter() eQueryPerformanceFrequency() para desempenhar o papel dequeryTime() em cada loop do jogo e passe o tempo para atualizar / renderizar. Em Java, eu usoSystem.nanoTime().

Qual é o equivalente em JavaScript? Ou seja, algumas funções comoqueryTime() que retorna um valor de tempo com um alto grau de precisão (sub-milissegundo). Pelo que ouvi, a melhor precisão que você pode obter no JavaScript é de cerca de 15 ms ... o que é horrível para animaçã

questionAnswers(10)

yourAnswerToTheQuestion