From 225804b5bddee3012af44177406c07ef5613de12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com> Date: Sun, 30 Oct 2022 10:45:33 +0000 Subject: [PATCH] refactor: arrow keys prevent --- examples/web/index.ts | 11 +++++++++++ examples/web/react/app.tsx | 3 +++ 2 files changed, 14 insertions(+) diff --git a/examples/web/index.ts b/examples/web/index.ts index 13ff3e00..cd74123f 100644 --- a/examples/web/index.ts +++ b/examples/web/index.ts @@ -53,6 +53,13 @@ const KEYS: Record<string, number> = { s: PadKey.B }; +const ARROW_KEYS: Record<string, boolean> = { + ArrowUp: true, + ArrowDown: true, + ArrowLeft: true, + ArrowRight: true +}; + const ROM_PATH = require("../../res/roms/20y.gb"); /** @@ -399,6 +406,8 @@ class GameboyEmulator extends Observable implements Emulator { registerKeys() { document.addEventListener("keydown", (event) => { const keyCode = KEYS[event.key]; + const isArrow = KEYS[event.key] ?? false; + if (isArrow) event.preventDefault(); if (keyCode !== undefined) { this.gameBoy!.key_press(keyCode); return; @@ -421,6 +430,8 @@ class GameboyEmulator extends Observable implements Emulator { document.addEventListener("keyup", (event) => { const keyCode = KEYS[event.key]; + const isArrow = KEYS[event.key] ?? false; + if (isArrow) event.preventDefault(); if (keyCode !== undefined) { this.gameBoy!.key_lift(keyCode); return; diff --git a/examples/web/react/app.tsx b/examples/web/react/app.tsx index 5832fdc8..36c13768 100644 --- a/examples/web/react/app.tsx +++ b/examples/web/react/app.tsx @@ -136,6 +136,9 @@ export const App: FC<AppProps> = ({ emulator, backgrounds = ["264653"] }) => { await handler(undefined, require("../res/storm.png"), 0.2); }); }; + const onKeyDown = (event: KeyboardEvent) => { + + } useEffect(() => { document.body.style.backgroundColor = `#${getBackground()}`; }); -- GitLab