From 07670ef8afb5a273267ea7149d5f7eef02fdf66b Mon Sep 17 00:00:00 2001 From: Lizzy Hunt Date: Fri, 12 Jan 2024 19:13:13 -0700 Subject: add subprojects --- centipede/js/game/input.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 centipede/js/game/input.js (limited to 'centipede/js/game/input.js') diff --git a/centipede/js/game/input.js b/centipede/js/game/input.js new file mode 100644 index 0000000..6ceff13 --- /dev/null +++ b/centipede/js/game/input.js @@ -0,0 +1,32 @@ +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 }; +})(); \ No newline at end of file -- cgit v1.2.3-70-g09d2