From 7b417bafbac4df9c158cfc4cc3e04d2f6f5cdb67 Mon Sep 17 00:00:00 2001 From: Paolo Brasolin <paolo.brasolin@eurac.edu> Date: Thu, 10 Mar 2022 10:26:07 +0100 Subject: [PATCH] feat: #fe approximate working DE keyboard --- frontend/src/js/fight_scene.js | 45 +++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/frontend/src/js/fight_scene.js b/frontend/src/js/fight_scene.js index a16cd0c..b85e412 100644 --- a/frontend/src/js/fight_scene.js +++ b/frontend/src/js/fight_scene.js @@ -166,24 +166,57 @@ function create() { initAndBindGuessPreview(this); } +const LETTERS_KEYCODES = new Set([ + Phaser.Input.Keyboard.KeyCodes.SPACE, + Phaser.Input.Keyboard.KeyCodes.A, + Phaser.Input.Keyboard.KeyCodes.B, + Phaser.Input.Keyboard.KeyCodes.C, + Phaser.Input.Keyboard.KeyCodes.D, + Phaser.Input.Keyboard.KeyCodes.E, + Phaser.Input.Keyboard.KeyCodes.F, + Phaser.Input.Keyboard.KeyCodes.G, + Phaser.Input.Keyboard.KeyCodes.H, + Phaser.Input.Keyboard.KeyCodes.I, + Phaser.Input.Keyboard.KeyCodes.J, + Phaser.Input.Keyboard.KeyCodes.K, + Phaser.Input.Keyboard.KeyCodes.L, + Phaser.Input.Keyboard.KeyCodes.M, + Phaser.Input.Keyboard.KeyCodes.N, + Phaser.Input.Keyboard.KeyCodes.O, + Phaser.Input.Keyboard.KeyCodes.P, + Phaser.Input.Keyboard.KeyCodes.Q, + Phaser.Input.Keyboard.KeyCodes.R, + Phaser.Input.Keyboard.KeyCodes.S, + Phaser.Input.Keyboard.KeyCodes.T, + Phaser.Input.Keyboard.KeyCodes.U, + Phaser.Input.Keyboard.KeyCodes.V, + Phaser.Input.Keyboard.KeyCodes.W, + Phaser.Input.Keyboard.KeyCodes.X, + Phaser.Input.Keyboard.KeyCodes.Y, + Phaser.Input.Keyboard.KeyCodes.Z, + 219, // ß + 186, // ü + 192, // ö + 222, // ä +]); + function initAndBindGuessPreview(scene) { var textEntry = scene.add.text(10, scene.cameras.main.height / 2 - 32, "", { font: "bold 64px Courier", fill: "#ffffff", }); scene.input.keyboard.on("keydown", function (event) { - if ( + if (LETTERS_KEYCODES.has(event.keyCode)) { + textEntry.text += event.key; + } else if ( event.keyCode === Phaser.Input.Keyboard.KeyCodes.BACKSPACE && textEntry.text.length > 0 ) { textEntry.text = textEntry.text.substr(0, textEntry.text.length - 1); } else if ( - event.keyCode === Phaser.Input.Keyboard.KeyCodes.SPACE || - (event.keyCode >= Phaser.Input.Keyboard.KeyCodes.A && - event.keyCode <= Phaser.Input.Keyboard.KeyCodes.Z) + event.keyCode === Phaser.Input.Keyboard.KeyCodes.ENTER && + textEntry.text.length > 0 ) { - textEntry.text += event.key; - } else if (event.keyCode === Phaser.Input.Keyboard.KeyCodes.ENTER) { submitTranscription(textEntry.text); textEntry.text = textEntry.text.substr(0, 0); } -- GitLab