@Tokenchik

Как поправить скрипт?

1) Как одновременно сдвигать элемент по двум осям при нажатых двух клавишах? Пока сдвигается пока не сменишь нажатую клавишу.
2) Как убрать паузу между вводом? После первого нажатия есть небольшая пауза, а затем нормально двигается, как это побороть?
Тут пример как сейчас сделано.
  • Вопрос задан
  • 195 просмотров
Решения вопроса 1
twobomb
@twobomb
Вы изначально не правильно все начали делать. Во первых если это потом все собирается вылиться в игру то срочно переходите на канвас. Во вторых он у вас двигается с задержкой потому-что keydown это одиночное событие, но через пару мс срабатывает эффект залипания, которые создают события keydown. Типа нажмите на текстовое поле и нажмите и подержите любую клавишу на клавиатуре, сначала вставится один символ и через несколько мс один начнут повторятся бесконечно пока не отожмешь. На самом деле в таких случаях я считаю лучше использовать gameLoop функции, тоесть как и во всех играх одна функция которая вызывается например 60 раз в секунду в идеале для (60fps) и в ней уже отдельно производится вызов функций для обработки физики, рендера и т.п. Ну с вашим примером можно так. Функция handler это и есть та самая gameLoop функция
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
lazalu68
@lazalu68
Salmon
Мне кажется единственный способ сделать это без проблем, это с помощью таймеров например, как-то так, понажимайте влево-вправо и z-x. Код не стоит использовать, там есть логические ошибки, но принцип использования таймеров там показан.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы