У меня проблема с моими командами клавиатуры, я пытаюсь заставить своего игрока играть анимацию , когда он идет влево/вправо. Клавиатура дает команду игроку перемещаться и воспроизводить анимацию. проблема в том, что он продолжает бесконечную анимацию и не позволяет ей закончить.Как заставить мою команду клавиатуры заставить игрока играть через анимацию?
stage.addEventListener (KeyboardEvent.KEY_DOWN, keyPressed); stage.addEventListener (KeyboardEvent.KEY_UP, keyRelease);
function keyRelease(k:KeyboardEvent)
{
movement = 0;
gotoAndPlay("standing");
}
function keyPressed(k:KeyboardEvent)
{
if(k.keyCode==Keyboard.D)
{
movement = 5;
gotoAndPlay("walking");
}
if(k.keyCode==Keyboard.A)
{
movement = -5;
gotoAndPlay("walking");
}
}
Я полагаю, что я могу пройти через весь код и сделать какой-то длинный список МСФ ...
но я figuerd там должен быть лучший способ
Ох спасибо !!! К тому времени, как я получил ваш ответ, я как бы сделал что-то полуслова тому, что вы описали, но я сделал его с таймерами, что вызвало тонну боли в **! вы, кажется, лучше, я проверю его сразу , но есть ли способ сделать нажатия клавиш для отправки строки кода только один раз? Я уже представляю себе массу проблем в будущем, если у меня не будет такого варианта ... –
Не совсем. Событие клавиатуры пытается имитировать способ работы с клавиатурой - в том случае, если вы нажмете его один раз, он отправит ключ, подождать несколько миллисекунд, а затем начнет отправлять эту клавишу постоянно. Это вроде как ожидалось. Лучший способ избежать этого - иметь «состояния» для нажатия клавиш (например, isMovingLeft, isMovingRight), а клавиша down/release только изменяет состояние, если оно отличается. Может быть немного неудобно, но он работает хорошо. – zeh
В качестве побочного примечания некоторые классы сторонних игр/ввода ключей облегчают вам также абстрагирование, и вы можете просто проверить, что что-то isPressed(), а не слушать события «вниз»/«вверх». Или вы можете создавать свои собственные классы, чтобы скрыть функциональность повтора вниз/вверх, постоянно проверяя состояние ключа перед отправкой события. – zeh