diff --git a/examples/web/index.ts b/examples/web/index.ts index 13ff3e00b7cc4ec8f7fa551df837d6ab7887b75d..cd74123f9e54201fd2797c46eeaf6c928305b3cb 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 5832fdc8398add43859d1cf95a9b810a3fd0f6a9..36c137686b34be4f657ce7d295597a5eec04e451 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()}`; });