Canvas, Анимация кадров, Перехват событий нажатия клавиши addEventListener('keydown')
В общем при нажатий на кнопку, я выполняю код, который меняет значение ключей в объекте и после вызывает функцию отриcовки на холсте. Проблема в том что на холсте отрисовывает 1-ый кадр с подвисанием, а далее идет у же все плавно. Не пойму как исправить.
Код: https://github.com/woody21978/game/
Визуал: https://woody21978.github.io/game/test (Движение стрелками лево/право/вниз)
P.S. : Обновил код на гитхабе Решение проблемы: Изначально анимацию я использовал в самом addEventListener(менял значение ключей и потом вызывал функцию отрисовки) - это плохо. Почему? Сам addEventListener так работает т.е при удержаний он выполнится с задержкой, а потом быстрее и быстрее. Решил просто на нажатие кнопки поставить событие true. Кнопка 'D' - нажата ставлю ей true. И в функций loop Уже проверяю if (d == true) { делаем анимацю } и в самой функций вызываем функцию отрисовки. Так же использовал функций requestAnimationFrame для бесконечного выполнения.
Ответы (1 шт):
P.S Обновил код на гитхабе Решение проблемы: Изначально анимацию я использовал в самом addEventListener(менял значение ключей и потом вызывал функцию отрисовки) - это плохо. Почему? Сам addEventListener так работает т.е при удержаний он выполнится с задержкой, а потом быстрее и быстрее. Решил просто на нажатие кнопки поставить событие true. Кнопка 'D' - нажата ставлю ей true. И в функций loop Уже проверяю if (d == true) { делаем анимацю } и в самой функций вызываем функцию отрисовки. Так же использовал функций requestAnimationFrame для бесконечного выполнения.