TGViewer
Deep Digital Deep Digital @deepdigital · 1.06K subscribers
Post #40 2.81K
Время лечит

Как правильно сделать анимацию линий на графике или полет снаряда в игре, чтобы на всех устройствах скорость была одинаковой?

В примерах даже от таких библиотек, как PixiJS, можно встретить неправильный код: размер или позиция элемента меняются на определенную величину при каждом тике — колбэке setInterval или requestAnimationFrame. Это упрощенные примеры, и важно не перенести такое же поведение в production.

Использование setInterval приведет к тормозам на слабых устройствах. Может не хватить ресурсов для отрисовки каждые N миллисекунд.

Движение на фиксированную величину при каждом requestAnimationFrame приведет к разной скорости. На мощных устройствах requestAnimationFrame будет срабатывать часто и скорость анимации будет большой, а на слабых — наоборот. В зависимости от производительности и нагрузки, у одних пользователей объект может двигаться на пиксель каждые 15 мс, а в других — только 2 раза в секунду.

Решение — работать со временем. Если мы знаем, что за секунду элемент должен сдвинуться на 100 пикселей, а с момента прошлого вызова прошло полсекунды, то нужно сместить объект на 50 пикселей. Все просто.
More from @deepdigital
  1. May 19, 2026Как расти в непростом рынке, масштабировать группу компаний и не терять фокус на клиентах?…
  2. Dec 26, 2025⚡️Подвели итоги 2025 года Chulakov Group Записали подкаст с Олегом Чулаковым — основателем…
  3. Dec 8, 2025Победы на Tagline Awards 2025 🏆 Снова громко напомнили, зачем делаем дизайн — чтобы созда…
  4. Jun 9, 2025Chulakov ⨉ ИТМО 💥 Мы снова в одном из крупнейших IT-вузов России. Альберт Рыбалко, руково…
  5. Jun 6, 2025🏆 Chulakov — № 1 в дизайне по всем рейтингам Безоговорочный лидер по версии крупнейших ан…
  6. May 6, 2025🙌 Вспоминаем, как насыщенно провели время на IT-конференции Merge Были рады стать партнер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →