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çã