"if (upPressed) {object.y -= 10;}" - 每次死亡后堆叠

"if (upPressed) {object.y -= 10;}" - stacks after each death

我正在 class 制作游戏,但我无法弄明白。 每当我的角色输了,游戏就会跳转到 "try again" 屏幕。当我按下按钮转到 gotoAndPlay(1) 时,代码 "Rakett.Rita.y -= 10;" 堆叠,使对象下一次移动速度加倍。 我试过卸载 MC,加载另一个场景而不是另一个帧,以及各种其他东西。我无法让它工作。

此外,每当我按下回车键时,用于对象的补间动画就会崩溃。有什么方法可以禁用回车键吗?

谢谢! 这是我的代码:

var upPressed: Boolean = false;      
var downPressed: Boolean = false;
var leftPressed: Boolean = false;
var rightPressed: Boolean = false;

RakettRita.addEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_2);
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed_2);
stage.addEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed_2);

已添加^

function fl_MoveInDirectionOfKey_2(event: Event) {

if (upPressed) {
    RakettRita.y -= 10;
    RakettRita.rotation = -20;
}
if (downPressed) {
    RakettRita.y += 10;
    RakettRita.rotation = 40;

}   
// if hit
if (trær.hitTestPoint(RakettRita.x, RakettRita.y, true)) {
// Go to losing-screen
gotoAndStop(215)
    }

}

function fl_SetKeyPressed_2(event: KeyboardEvent): void {
switch (event.keyCode) {
    case Keyboard.UP:
        {
            upPressed = true;
            break;
        }
    case Keyboard.DOWN:
        {
            downPressed = true;
            break;
        }

}
}

function fl_UnsetKeyPressed_2(event: KeyboardEvent): void {
switch (event.keyCode) {
    case Keyboard.UP:
        {
            upPressed = false;
            break;
        }
    case Keyboard.DOWN:
        {
            downPressed = false;
            break;
        }

 }
}

当您进入重试屏幕时,您需要删除这些事件侦听器。否则下次运行此框架的代码时,它将添加一个侦听器的副本,并且一切都会发生两次。