Я пытаюсь создать игру с боковой прокруткой. В нем я хочу, чтобы игрок мог стрелять из дротиков.
Как и сейчас, если игрок держит пробел, анимация стрельбы игрока (который является MovieClip) зацикливается. Я хочу, чтобы анимация воспроизводилась только один раз за нажатие клавиши пробела.
Вот код, который я использую:
Этот метод определяет, какие клавиши нажимаются:
// Process the pressed key(s)
public function KeyPressed(event:KeyboardEvent):void {
// The Left Key was pressed
if (event.keyCode == Keyboard.LEFT) {
leftKeyPressed = true;
}
// The Right Key was pressed
if (event.keyCode == Keyboard.RIGHT) {
rightKeyPressed = true;
}
// The Up Key was pressed
if (event.keyCode == Keyboard.UP) {
upKeyPressed = true;
}
// The Down Key was pressed
if (event.keyCode == Keyboard.DOWN) {
downKeyPressed = true;
}
// The Space Key was pressed
if (event.keyCode == Keyboard.SPACE) {
spaceKeyPressed = true;
}
} // End of 'KeyPressed()' function
Этот метод определяет, какие ключи были освобождены:
public function KeyReleased(event:KeyboardEvent):void {
// The Left Key was released
if (event.keyCode == Keyboard.LEFT) {
leftKeyPressed = false;
}
// The Right Key was released
if (event.keyCode == Keyboard.RIGHT) {
rightKeyPressed = false;
}
// The Up Key was released
if (event.keyCode == Keyboard.UP) {
upKeyPressed = false;
}
// The Down Key was released
if (event.keyCode == Keyboard.DOWN) {
downKeyPressed = false;
}
// The Space Key was released
if (event.keyCode == Keyboard.SPACE) {
spaceKeyPressed = false;
}
} // End of 'KeyReleased()' function
Это пример кода, который воспроизводит одну из анимаций стрельбы игрока:
if (onGround && !downKeyPressed && spaceKeyPressed) {
player.gotoAndStop(7);
}
Как я могу предотвратить непрерывный цикл кадра 7-го игрока? Я просто хочу, чтобы анимация воспроизводилась один раз, пока нажата пробел.
Спасибо!