From e4eb12697fb7e8a4e6c5ab2a54babc5fc174b148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com> Date: Thu, 7 Jul 2022 14:34:27 +0100 Subject: [PATCH] feat: support for keys in browser --- examples/sdl/src/main.rs | 2 +- examples/web/index.ts | 30 +++++++++++------------------- 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/examples/sdl/src/main.rs b/examples/sdl/src/main.rs index 289cef91..d9abec78 100644 --- a/examples/sdl/src/main.rs +++ b/examples/sdl/src/main.rs @@ -171,6 +171,6 @@ fn key_to_pad(keycode: Keycode) -> PadKey { Keycode::Space => PadKey::Select, Keycode::A => PadKey::A, Keycode::S => PadKey::B, - _ => PadKey::A, + _ => PadKey::A, //@todo this does not make sence, make it an Option } } diff --git a/examples/web/index.ts b/examples/web/index.ts index 6149a76e..9876afb9 100644 --- a/examples/web/index.ts +++ b/examples/web/index.ts @@ -1,4 +1,4 @@ -import { BootRom, default as wasm, GameBoy } from "./lib/boytacean.js"; +import { default as wasm, GameBoy, PadKey } from "./lib/boytacean.js"; import info from "./package.json"; const PIXEL_UNSET_COLOR = 0x1b1a17ff; @@ -30,22 +30,14 @@ const BACKGROUNDS = [ ]; const KEYS: Record<string, number> = { - "1": 0x01, - "2": 0x02, - "3": 0x03, - "4": 0x0c, - q: 0x04, - w: 0x05, - e: 0x06, - r: 0x0d, - a: 0x07, - s: 0x08, - d: 0x09, - f: 0x0e, - z: 0x0a, - x: 0x00, - c: 0x0b, - v: 0x0f + ArrowUp: PadKey.Up, + ArrowDown: PadKey.Down, + ArrowLeft: PadKey.Left, + ArrowRight: PadKey.Right, + Enter: PadKey.Start, + " ": PadKey.Select, + a: PadKey.A, + s: PadKey.B }; // @ts-ignore: ts(2580) @@ -393,7 +385,7 @@ const registerKeys = () => { document.addEventListener("keydown", (event) => { const keyCode = KEYS[event.key]; if (keyCode !== undefined) { - //state.gameBoy.key_press_ws(keyCode); @todo + state.gameBoy.key_press(keyCode); return; } @@ -415,7 +407,7 @@ const registerKeys = () => { document.addEventListener("keyup", (event) => { const keyCode = KEYS[event.key]; if (keyCode !== undefined) { - //state.gameBoy.key_lift_ws(keyCode); @todo + state.gameBoy.key_lift(keyCode); return; } }); -- GitLab