Предоставляет ли JavaScript таймер высокого разрешения?
Я написал несколько игровых движков с нуля, некоторые на C, некоторые на Java, а некоторые на Вспышка. Когда дело касается анимации и интерактивной графики, я всегда следую одной и той же базовой модели. Создайте базовый класс / структуру со следующим дизайном:
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);
}
}
Время так важно для сглаживания анимации и расчетов состояния игры. В собственном коде Windows я использую QueryPerformanceCounter ()
и QueryPerformanceFrequency ()
для выполнения роли queryTime ()
в каждом игровом цикле и передачи времени на обновление /оказывать. В Java я использую System.nanoTime ()
.
Что эквивалентно в JavaScript? То есть некоторая функция вроде queryTime ()
, которая возвращает значение времени с высокой степенью точности (субмиллисекунды). Из того, что я слышал, лучшая точность, которую вы можете получить в JavaScript, составляет около 15 мс ... что ужасно для анимации.