Корона SDK пытается управлять персонажем с клавиатуры - PullRequest
0 голосов
/ 17 марта 2019
if (event.keyName == 'd' and event.phase == 'down'  ) then

Chr.xScale =  1
Chr.x = Chr.x + 5
Chr:setSequence("Run")
Chr:play()
return true
end

Я пытаюсь переместить мой «Chr» вправо, но когда я хочу переместить его, мне нужно нажимать каждый раз, чтобы переместить «Chr», как я могу удерживать d, чтобы переместить «Chr» вправый

1 Ответ

0 голосов
/ 17 апреля 2019

Ваш слушатель будет запускаться только один раз, с параметром event.phase, установленным на "down", один раз за нажатие клавиши, поэтому вы будете перемещать объект Chr вправо на 5 пикселей только один раз.

Решением этой проблемы будет добавление физического тела к вашему объекту, а затем установка скорости с помощью object:setLinearVelocity( xVelocity, yVelocity ) (https://docs.coronalabs.com/api/type/Body/setLinearVelocity.html)

Это будет непрерывно перемещать ваш объект, поэтому, чтобы остановить движение Chr, вы должны вызвать object:setLinearVelocity( 0, 0), когда для event.phase установлено значение "up".

...