UNPKG

gamepadzilla

Version:

A plug-and-play gamepad frontend framework for HTML5 mobile games, supporting both virtual and physical joysticks. No scripting required.

26 lines (21 loc) 895 B
import { ObjectGpz } from "./interface" interface Keyboard extends Window { KeyboardEvent: new (type: string, eventInitDict?: KeyboardEventInit | undefined) => KeyboardEvent } function virtualKeyboard(device: Keyboard, self: ObjectGpz) { self.fakekeys.forEach((fakekey, index) => { if (self.stateNew[index] && !self.stateOld[index]) { device.dispatchEvent(new device.KeyboardEvent('keydown', fakekey)) } if (!self.stateNew[index] && self.stateOld[index]) { device.dispatchEvent(new device.KeyboardEvent('keyup', fakekey)) } }) } const emu = { Joy: (self: ObjectGpz) => virtualKeyboard(window, self), Btn: (self: ObjectGpz) => virtualKeyboard(window, self), Btn4: (self: ObjectGpz) => virtualKeyboard(window, self), Dpad: (self: ObjectGpz) => virtualKeyboard(window, self), } export { emu, virtualKeyboard }