Extendiendo atajos de teclado
Crea una funcin runOnKeys(func, code1, code2, ... code_n) que ejecute func al presionar simultneamente las teclas con cdigos code1, code2, , code_n.
Por ejemplo, el siguiente cdigo muestra un alert cuando "Q" y "W" se presionan juntas (en cualquier lenguaje, con o sin mayscula)
runOnKeys(
() => alert("Hola!"),
"KeyQ",
"KeyW"
);
Debemos manejar dos eventos: document.onkeydown y document.onkeyup.
Creemos un set pressed = new Set() para registrar las teclas presionads actualmente.
El primer manejador las agrega en l, mientras que el segundo las quita. Con cada keydown verificamos si tenemos suficientes teclas presionadas, y ejecutamos la funcin si es as.