JSFiddle - React, Tailwind, and code Playground

by falldeaf

JavaScript

var pressed_keys = [];
// left, up, right, down, shift, pg-up, pg-dn, enter, space, esc
var allowed_keys = [37, 38, 39, 40, 16, 33, 34];

document.addEventListener('keydown', e => {
    if (event.repeat != undefined) {
      allowed = !event.repeat;
    }
    if (!allowed) return;
    allowed = false;
    //if(allowed_keys.includes(e.keyCode)) {
    	pressed_keys.push(e.keyCode);    
    //}

});

document.addEventListener('keyup', e => {
    const index = pressed_keys.indexOf(e.keyCode);
		if (index > -1) { pressed_keys.splice(index, 1); }
    switch(e.keyCode) {
    	case 13:
      	takeoffCommand();
      	break;
    	case 32:
      	landCommand();
      	break;
    	case 27:
      	stopCommand();
      	break;
      case 88:
      	emergencyCommand();
    }
});

setInterval(function() {
	console.log(pressed_keys);	
}, 500);