implement basic arkanoid version
This commit is contained in:
+16
-4
@@ -1,22 +1,34 @@
|
||||
export enum Keys {
|
||||
ARROW_RIGHT = 'ArrowRight',
|
||||
ARROW_LEFT = 'ArrowLeft',
|
||||
P = 'p',
|
||||
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 => {
|
||||
pressedKeys[e.key as Keys] = false;
|
||||
downKeys[e.key as Keys] = false;
|
||||
});
|
||||
|
||||
export const keyboard = {
|
||||
pressedKeys,
|
||||
pressedKeys: downKeys,
|
||||
isKeyPressed(key: Keys): boolean {
|
||||
return Boolean(pressedKeys[key]);
|
||||
const isPressed = Boolean(pressedKeys[key]);
|
||||
pressedKeys[key] = false;
|
||||
return isPressed;
|
||||
},
|
||||
isKeyDown(key: Keys): boolean {
|
||||
return Boolean(downKeys[key]);
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user