game.input = (() => { "use strict"; const Keyboard = () => { const keys = {}; const handlers = {}; const keyPress = (event) => { keys[event.key] = event.timeStamp; }; const keyRelease = (event) => { delete keys[event.key]; }; const registerCommand = (key, handler) => { handlers[key] = handler; }; const unregisterCommand = (key) => { delete handlers[key]; } const update = (elapsedTime) => { for (let key in keys) { if (keys.hasOwnProperty(key)) { if (handlers[key]) { handlers[key](elapsedTime); } } } }; window.addEventListener("keydown", keyPress); window.addEventListener("keyup", keyRelease); return {keys, handlers, registerCommand, unregisterCommand, update}; } return { Keyboard }; })();