Chipvuelto8/src/keyboard.ts
2024-09-02 16:35:16 +02:00

40 lines
856 B
TypeScript

const KEYS = 16;
// Keyboard
// 1 2 3 C
// 4 5 6 D
// 7 8 9 E
// A 0 B F
class Keyboard {
keys : Uint8Array;
userKeyboardMap: Map<number, number>;
constructor() {
this.keys = new Uint8Array(KEYS);
// Used to check keys from the user event.keys
this.userKeyboardMap = new Map<number, number>();
}
private setKey(key: number, pressed: boolean) {
this.keys[key] = pressed ? 1 : 0;
}
public setUserKey(userKey: number, key: number) {
this.userKeyboardMap.set(userKey, key);
}
public userKeyPressedDown(userKey: number) {
let keyVal: number = this.userKeyboardMap.get(userKey) ?? -1;
if(keyVal != -1) this.setKey(keyVal, true);
}
public userKeyPressedUp(userKey: number) {
let keyVal: number = this.userKeyboardMap.get(userKey) ?? -1;
if(keyVal != -1) this.setKey(keyVal, false);
}
}
export default Keyboard;