UNPKG

gamepadzilla

Version:

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

34 lines (28 loc) 1.15 kB
import { EventGpz, ObjectGpz } from "./interface"; import { TouchEvents, MouseEvents } from "./interface"; import { handleMouse } from "./handlers"; import { process } from "./engine"; function InstallEventMouse(device: Window, pads: Array<ObjectGpz>) { pads.forEach(self => { function eventClean(event: MouseEvent) { self.from = EventGpz.Touch self.fingers = [] process(self) } function eventMove(event: MouseEvent) { self.from = EventGpz.Touch self.fingers = [...handleMouse(event, self.canvas)] process(self) } function disableMouse(event: TouchEvent) { self.canvas.removeEventListener(MouseEvents.Move, eventMove) self.canvas.removeEventListener(MouseEvents.Leave, eventClean) device.removeEventListener(TouchEvents.Start, disableMouse) } device.addEventListener(TouchEvents.Start, disableMouse) self.canvas.addEventListener(MouseEvents.Move, eventMove) self.canvas.addEventListener(MouseEvents.Leave, eventClean) }) } export { InstallEventMouse }