5 Stimmen

Wie viele gedrückte Tasten kann Flash erkennen? mit as3

Ich bin dabei, ein kleines Spiel zu entwickeln. Ich verwende den folgenden Code, um die vom Spieler gedrückten Tasten zu erkennen:

private function onKeyDown(event:KeyboardEvent):void {
        //moviment keys
        if (event.keyCode == 37 || event.keyCode == 65) {
            this.leftKeyPressed = true;
        }
        if (event.keyCode == 39 || event.keyCode == 68) {
            this.rightKeyPressed = true;
        }
        if (event.keyCode == 38 || event.keyCode == 87) {
            this.upKeyPressed = true;
        }
        if (event.keyCode == 40 || event.keyCode == 83) {
            this.downKeyPressed = true;
        }

        if (event.keyCode == this.shootKey) {
            this.shootKeyPressed = true;
        }
    }

Das Ereignis onKeyUp:

private function onKeyUp(event:KeyboardEvent):void {
        if (event.keyCode == 37 || event.keyCode == 65) {
            this.leftKeyPressed = false;
        }
        if (event.keyCode == 39 || event.keyCode == 68) {
            this.rightKeyPressed = false;
        }
        if (event.keyCode == 38 || event.keyCode == 87) {
            this.upKeyPressed = false;
        }
        if (event.keyCode == 40 || event.keyCode == 83) {
            this.downKeyPressed = false;
        }
        if (event.keyCode == this.shootKey) {
            this.shootKeyPressed = false;
        }
        if (event.keyCode == changeColorKey) {
            trace('color key released');
            trace(getTimer());
            this.changeColorKeyPressed = true;
        }

    }

Grundsätzlich wird die ShootKey-Taste vom Spieler fast die ganze Zeit gedrückt gehalten. Und die changeColorKey wird sehr oft gedrückt, aber nicht gedrückt gehalten. Beim Testen habe ich festgestellt, dass die onKeyUp-Ereignisse für die changeColorKey nicht ausgelöst werden, wenn die ShootKey und die rechte Pfeiltaste gedrückt gehalten werden. Wenn ich die Pfeiltaste nach oben oder unten statt des rechten Pfeils gedrückt halte, hat das denselben Effekt. Wenn ich die linke Pfeiltaste gedrückt halte, werden die Ereignisse ausgelöst. Warum tritt das auf? Ist mit meinem Code etwas nicht in Ordnung?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X