24 lines
573 B
JavaScript
24 lines
573 B
JavaScript
class Key {
|
|
constructor(onKeydown) {
|
|
this._pressed = {};
|
|
this.cb_onKeydown = onKeydown;
|
|
|
|
window.addEventListener('keydown', e => this.onKeydown(e));
|
|
window.addEventListener('keyup', e => this.onKeyup(e));
|
|
}
|
|
|
|
setKeydown(fn) {
|
|
this.cb_onKeydown = fn;
|
|
}
|
|
|
|
isDown(keyCode) {
|
|
return this._pressed[keyCode];
|
|
}
|
|
onKeydown(event) {
|
|
this._pressed[event.code] = true;
|
|
if (this.cb_onKeydown) this.cb_onKeydown(event);
|
|
}
|
|
onKeyup(event) {
|
|
delete this._pressed[event.code];
|
|
}
|
|
} |