Почему мой персонаж не движется плавно в моем 2D боковом скроллере? - PullRequest
0 голосов
/ 11 июля 2019

Когда я нажимаю клавиши со стрелками вправо и влево, вместо того чтобы двигаться влево и вправо, как ожидалось, персонаж дергается вперед, останавливается и перезапускается, пока у меня нажата кнопка.

У меня есть вся игра здесь: https://codepen.io/alexis-lee-ann-stockdale/pen/qzvrop

Я думаю, что проблема где-то в функции обновления или в функции клавиш.

Вотя написал в функции обновления, чтобы переместить персонажа:

    game.player.y += game.player.vely;
    game.player.posx += game.player.velx;
    game.player.velx *= game.world.friction;
    game.player.vely += game.world.gravity;

Если это слишком сложный вопрос, чтобы ответить, не могли бы вы указать мне службу репетиторства, которую я мог бы использовать?Заранее спасибо.

1 Ответ

1 голос
/ 11 июля 2019

Насколько я могу судить, причина поведения остановки и перезапуска - повторение ключа. Вы слушаете событие keydown, и оно срабатывает один раз при нажатии клавиши, а затем снова каждый раз, когда ОС повторяет нажатие клавиши.

Что вам нужно сделать, это двигаться вправо или влево, пока нажата клавиша. Вам нужно будет отслеживать, когда клавиша нажата и отпущена , к сожалению, нет более простого способа.

...