Задать вопрос
BenderIsGreat34
@BenderIsGreat34
junior front-end

Как повысить requestAnimationFrame?

Делаю игру на канвасе на нативном скрипте. Есть канвас, высотой 700пиксилей, сверху вниз летят кубики, время от времени скорость падения увеличивается. Если кубики монотонные, одного цвета, то играть можно нормально, но когда сделали дизайн для кубиков и по дизайну на кубиках нарисованы буквы, в глазах начинает рябить, у нормальных людей случает эпилепсия, а эпилептики получают свою годовую дозу.
Как можно решить вопрос рендеринга? Из вариантов сделать дизайн кубиков менее броским, но это самый плохой вариант. Возможно есть какая-то библиотека способная решить данную проблему? Возможно ли как-то повысить requestAnimationFrame, чтобы спрайты стали отчётливее видны? Возможно есть ещё варианты, о которых я не подумал?
  • Вопрос задан
  • 200 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
hzzzzl
@hzzzzl
ну браузер будет пытаться вызвать эту функцию 60 раз в секунду, можно попробовать каждый второй раз ничего не делать, например

let shouldRender = false

function step() {
  shouldRender = !shouldRender

  if(!shouldRender) return  
  ..

}

window.requestAnimationFrame(step);
Ответ написан
Комментировать
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
В колбэк requestAnimationFrame первым аргументом приходит время в миллисекундах с дробной частью (как в результате performance.now)
меряйте сколько прошло времени после последней анимации, если меньше некоего порогового значения (подберите) - то просто планируем следующий requestAnimationFrame и ничего не рисуем
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
03 февр. 2025, в 23:45
3000 руб./за проект
03 февр. 2025, в 22:54
20000 руб./за проект
03 февр. 2025, в 21:56
2000 руб./за проект