Browser events fire at a different rate than your application logic/render code.
This library allow to access input state for variable frame rate scenarios.
Skip the need to process out of sync browser callbacks.
Getting Started
Get from NPM using npm install syncinput --save-prod
Here is a small code example showing the basic functionality of the library.
import{Keyboard,Keys,Mouse,MouseButton,Touch,Gamepad,GamepadButton}from'syncinput';//Initializationmouse=newMouse();keyboard=newKeyboard();touch=newTouch();gamepad=newGamepad();[...]//Inside of the logic/rendering loopmouse.update();keyboard.update();console.log("Position X:"mouse.position.x+" Y:"+mouse.position.y);console.log("Delta X:"mouse.delta.x+" Y:"+mouse.delta.y);console.log("Scroll wheel:"mouse.wheel);if(touch.touchJustPressed(0)){console.log("First touch point just pressed.");}if(touch.touchJustReleased(1)){console.log("Second touch point just released.");}if(mouse.buttonPressed(MouseButton.LEFT)){console.log("Mouse left is pressed");}if(mouse.buttonPressed(MouseButton.LEFT)){console.log("Mouse left is pressed");}if(keyboard.keyPressed(Keys.W)||gamepad.buttonPressed(GamepadButton.UP)){console.log("W is pressed or Gamepad UP is pressed");}if(keyboard.keyJustPressed(Keys.W)){console.log("W was just pressed");}if(keyboard.keyJustReleased(Keys.W)){console.log("W was just released");}
Mouse
position {x, y} -Actual mouse position
delta {x, y} - Mouse delta since last time update() was called
wheel - Mouse wheel value
buttonPressed(button) - Check if mouse button is pressed (touchscreen tap same as left click)
buttonJustPressed(button) - Check if mouse button was just pressed
buttonJustReleased(button) - Check if mouse button was just released
setCanvas(canvas) - Attach canvas to mouse object for position coordinated to be calculated relatively to the canvas.
insideCanvas() - Check if mouse is inside attached canvas
setLock(value) - Set mouse lock on/off.
Keyboard
keyPressed(button) - Check if key is currently pressed
keyJustPressed(button) - Check if key was just pressed
keyJustReleased(button) - Check if key was just released
reset() - Reset all keys
Gamepad
buttonPressed(button) - Check if gamepad button is pressed
buttonJustPressed(button) - Check if gamepad button was just pressed
buttonJustReleased(button) - Check if gamepad button was just released
Touch
points[] - List of touch points and their respective status.
pan(points) - Multi-touch pan
touchPressed(point) - Check if touch point is pressed
touchJustPressed(point) - Check if touch point was just pressed
touchJustReleased(point) - Check if touch point was just released