Files
arkanoid/src/keyboard.ts
T

35 lines
746 B
TypeScript

export enum Keys {
ARROW_RIGHT = 'ArrowRight',
ARROW_LEFT = 'ArrowLeft',
p = 'p',
s = 's',
r = 'r',
}
const downKeys: Partial<Record<Keys, boolean>> = {};
const pressedKeys: Partial<Record<Keys, boolean>> = {};
document.addEventListener('keydown', e => {
downKeys[e.key as Keys] = true;
});
document.addEventListener('keypress', e => {
pressedKeys[e.key as Keys] = true;
});
document.addEventListener('keyup', e => {
downKeys[e.key as Keys] = false;
});
export const keyboard = {
pressedKeys: downKeys,
isKeyPressed(key: Keys): boolean {
const isPressed = Boolean(pressedKeys[key]);
pressedKeys[key] = false;
return isPressed;
},
isKeyDown(key: Keys): boolean {
return Boolean(downKeys[key]);
},
};