UNPKG

gamepadzilla

Version:

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

31 lines (25 loc) 958 B
import { ObjectGpz } from "./interface"; function vibration(self: ObjectGpz, device: Navigator, first_interact: {click: boolean}) { const find = (state, index) => state && self.stateOld[index] == false const action = self.stateNew.findIndex(find) if (action !== -1 && first_interact.click) { const vibration = self.canvas.dataset.gpzVibrate ?? '200' const animation = vibration.split(' ').map(intensity => Number(intensity)) device.vibrate(animation) } } function InstallEventFeedback(device: Window, pads: Array<ObjectGpz>) { let first_interact = { click: false } device.addEventListener('click', () => { first_interact.click = true }) pads.forEach(self => { if ('navigator' in device && 'vibrate' in device.navigator) { self.chain.push(pad => vibration(pad, device.navigator, first_interact)) } }) } export { InstallEventFeedback, vibration }