Files
moeka-project/packages/input-gamepad/README.md
T

36 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# `@proj-airi/input-gamepad`
This package reads controllers through the browser Gamepad API. It accepts controllers that expose the W3C `standard` mapping.
The package converts browser button indices to physical names. For example, button `0` becomes `faceBottom`. The printed label can be `×`, `A`, or `B`.
## Use the package
```ts
import { StandardGamepadMonitor } from '@proj-airi/input-gamepad'
const monitor = new StandardGamepadMonitor({ deadzone: 0.12 })
const stopListening = monitor.onSnapshot((snapshot) => {
if (!snapshot)
return
console.info(snapshot.leftStick, snapshot.buttons.faceBottom)
})
monitor.start()
// Run these operations when the feature closes.
stopListening()
monitor.stop()
```
## When to use it
Use this package directly in framework-independent browser code. It supports buttons, sticks, and analog triggers.
In Vue code, use `@proj-airi/input-gamepad-vueuse`. It owns the polling lifecycle and exposes readonly reactive state.
Do not use this package for motion sensors, touchpads, lights, or adaptive triggers. Use a device-specific adapter for these features.
The package ignores controllers without the `standard` mapping. This rule prevents device-specific button indices from entering application code.