gamepadcontroller
v1.0.1
Published
An event based api for gamepad controllers in the browser
Downloads
131
Maintainers
Readme
Gamepad Controller
An event based api for using gamepads in the browser
Facilitates listening to button press, button release, and joy stick move events from a connected gamepad controller. This package was developed with an xbox one controller, but should support any gamepad.
Usage
Install with:
$ npm install --save gamepadcontroller
Then on the client:
// ES6
import 'GamepadController' from 'gamepadcontroller';
// OR ES5
var GamepadController = require('gamepadcontroller');
const gamepad = new GamepadController(0 /* takes an index, 0 - 3 */);
gamepad.onButtonPress(0, e => console.log(e, 'A button pressed'));
gamepad.onButtonRelease(0, e => console.log(e, 'A button released'));
gamepad.onButtonChange(7, e => console.log(e, 'Right trigger changed'));
gamepad.onStickMove(0, e => console.log(e, 'Left stick moved'));
The GamepadController
constructor requires an index from 0 - 3 to determine which of the four potential gamepad controller slots to wrap.
Event Listeners
Button Events
gamepad.onButtonPress(buttonIndex, buttonCallbackFunction)
gamepad.removeOnButtonPress(buttonIndex)
gamepad.onButtonRelease(buttonIndex, buttonCallbackFunction)
gamepad.removeOnButtonRelease(buttonIndex)
gamepad.onButtonChange(buttonIndex, buttonCallbackFunction)
gamepad.removeOnButtonChange(buttonIndex)
function buttonCallbackFunction (state) {
const { previous, current } = state;
// previous and current = { pressed: Bool, value: 0 < value < 1 }
// handle button event ...
}
Stick Events
gamepad.onStickMove(stickIndex, stickCallbackFunction)
gamepad.removeOnStickMove(stickIndex)
function stickCallbackFunction (state) {
const { previous, current } = state;
// previous and current = { x: -1 < x < 1, y: -1 < y < 1 }
// handle stick move ...
}
Reference
Standard button mapping for an Xbox One Gamepad Controller:
0: 'a'
1: 'b'
2: 'x'
3: 'y'
4: 'left bumper'
5: 'right bumper'
6: 'left trigger'
7: 'right trigger'
8: 'back'
9: 'start'
10: 'left stick'
11: 'right stick'
12: 'up'
13: 'down'
14: 'left'
15: 'right'
16: 'xbox'
Joystick indexes for an Xbox One Gamepad Controller:
0: 'left stick'
1: 'right stick'