Gamepad
install
npm install @latel88/gamepad
const { Gamepad, keycode } = require( "@latel88/gamepad" );
import { Gamepad, keycode } from "@latel88/gamepad";
exsample
const gamepad = new Gamepad( window,
{
key: "body",//key event target element
mouse: "body",//mouse event target element
touchX: "#touch-x",//touch pad x target element
touchY: "#touch-y",//touch pad y target element
pointer_look: "body"//pointer look target element
},
{
"forward": keycode.W,
"back": keycode.S,
"right": keycode.D,
"left": keycode.A
"fire": keycode.MOUSE_LEFT,
"ads": keycode.MOUSE_RIGHT
},
{
sensibilityX: 1,
sensibilityY: 1,
invertedX: false,
invertedY: false,
touch_max_x: 75
} );
setInterval( () =>
{
gamepad.fire( "update" );
} );
setInterval( () =>
{
gamepad.fire( "update" );
const force = gamepad.getButton( "forward" );
if (force > 0)
{
entity.position.y += 1;
}
} );
setInterval( () =>
{
gamepad.fire( "update" );
entity.position.x += gamepad.movementX.x;
entity.position.y += gamepad.movementX.y;
entity.direction.x += gamepad.movementY.x;
entity.direction.y += gamepad.movementY.y;
} );
const touch_button = document.createElement( "div" );
touch_button.addEventListener( "touchstart", ( event ) =>
{
gamepad.pressButton( "fire" );
} );
touch_button.addEventListener( "touchend", ( event ) =>
{
gamepad.releaseButton( "fire" );
} );
gamepad.setBind( "fire", keycode.GAMEPAD_RR );
gamepad.readyBind( "fire" ( keyCode, bind ) =>
{
if (confim( `${ keyCode }` ))
{
bind( true );
}
else
{
bind( false );
}
} );