и это
ставляет ли JavaScript таймер высокого разрешения?
Я написал несколько игровых движков с нуля, некоторые на C, некоторые на Java, а некоторые на Flash. Я всегда следую одной и той же базовой модели, когда дело доходит до анимации и интерактивной графики. Создайте базовый класс / структуру со следующим дизайном:
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 мс ... что ужасно для анимации.