Я бы хотел использовать setInterval
для фактических шагов в программе и requestAnimationFrame
для рендеринга. Я был под впечатлением, что это будет идеальное сочетание: скорость рендеринга не замедлит фактическую прогрессию, поэтому падение частоты кадров повлияет только на частоту кадров и все еще синхронизируется. Однако у меня были капли в функции setInterval
.Использование setInterval с requestAnimationFrame
пример того, что я имею в виду, намеренно погрязнуть тени: http://jsfiddle.net/Ltdz168m/
Уменьшить или увеличить количество заправок, и вы увидите разницу
Казалось бы, что на самом деле requestAnimationFrame не решение для обеспечения отставания, замедляющего JavaScript. Как тогда я бы обновил логическую сторону вещей, что можно сделать со скоростью 60 кадров в секунду, без помех от рендеринга? Необходимы ли WebWorkers?
Я думал об этом, но мальчику было бы много работы. Я полагаю, что это необходимая работа. И я должен согласиться, это аккуратная особенность; бьет jsfiddle ссылки. – 2014-09-16 23:01:36
На самом деле меньше кода для использования Delta Timing, чем использовать 'setInterval';) –
Ну, у меня только что был настроен цикл с расширением .update(), поэтому мне нужно будет пропустить его через это и применить до довольно много математической работы (гораздо больше, чем этот пример). Тем не менее, он должен рассчитывать на синхронизацию. – 2014-09-16 23:04:43