1) Интересно, лучше ли двигать вашего персонажа только по нажатию клавиши и останавливать его по нажатию клавиши.Вы должны быть осторожны, поскольку не все элементы поддерживают метод.Ранее я видел примеры, когда элемент формы размещается за кадром (например, position: absolute; left: -999px;), и получает фокус при загрузке страницы.Затем поле формы принимает нажатия клавиш, и ему назначаются обработчики клавиш.
2) Это потому, что вы постоянно сбрасываете src образа в образ выполнения, что означает, что он продолжает идти к первому кадру.Вы можете обойти это, увеличив счетчик, когда клавиша нажата, и изменив изображение только тогда, когда счетчик == 1. Вам также нужно будет обнаружить отпускание клавиши, чтобы вы могли изменить изображение назад и сбросить настройки.счетчик 0.