blob: 6ceff136f70864c4d549e29493041d218209cc9d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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 };
})();
|