Anstatt zu erkennen, wenn eine Taste gedrückt ist, wie erkenne ich, wenn eine Taste losgelassen wird?Phaser - Auf Schlüsselfreigabe?
0
A
Antwort
1
Eine Option ist onUpCallback
zu verwenden.
game.input.keyboard.onUpCallback = function (e) {
// These can be checked against Phaser.Keyboard.UP, for example.
console.log(e.keyCode);
};
Ich nehme an, Sie auch, ob der Schlüssel speichern können, ist unten in Ihrer update
Funktion, und dann bei jeder Iteration überprüfen, ob es nach oben, wenn man will: zum Beispiel in Ihrer create
Funktion so etwas wie die folgenden hinzufügen Verfolgen Sie, wie lange die Taste gedrückt wurde.
Ich bin mir nicht sicher, welche Art von Leistungsprobleme würden Sie jedoch, so würde ich wahrscheinlich mit onUpCallback
beginnen.
0
Setzen Sie ein Flag, wenn die Taste gedrückt wird. Bei der Prüfung Aktualisierungsschleife, wenn das Flag gesetzt ist, aber der Schlüssel ist nicht mehr nach unten:
//... somewhere
var downFlag = false;
//... in update
if(yourkey.isDown){
downFlag = true;
}else{
if(downFlag){
downFlag = false;
//do something
}
}
..aber mit beginnen, was James sagt
Was tun Sie, wenn dies der Fehler gibt, „kann nicht eingestellt Eigenschaft 'onUpCallback' von undefined "? – Jim
Das deutet darauf hin, dass "Tastatur" nicht definiert ist. Ich müsste mehr Code zur Fehlerbehebung darüber hinaus sehen. –
Es stellte sich heraus, dass ich versuchte, die Tastaturereignisse auf regulären Bildern und Sprites hinzuzufügen, wenn sie wirklich nur zum Spielobjekt hinzugefügt werden können. – Jim