0.6.0 • Published 10 months ago

@footgun/input-web v0.6.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

game-input

Provides an efficient, pollable interface for checking the state of keyboard keys, mouse buttons, and gamepad buttons in a web browser.

Web Example

import webInput from '@footgun/input-web'


const LEFT_MOUSE_BUTTON = 1
const MIDDLE_MOUSE_BUTTON = 2
const RIGHT_MOUSE_BUTTON = 3

const Input = webInput({
    // whichever canvas element you want mouse events relative to
    canvas: document.querySelector('canvas'),

    bindings: [
        // define all of the mouse and keyboard events you wish to listen for here
        {
            name: 'walk_left',
            event: 'key',
            value: 'KeyS',
        },
        {
            name: 'walk_right',
            event: 'key',
            value: 'KeyF',
        },
        {
            name: 'charge_arrow',
            event: 'mouse',
            value: MIDDLE_MOUSE_BUTTON
        },
        /*
        {
            name: 'fire',
            event: 'gamepad',
            gamepadIndex: 0,
            buttonIndex: 4
        },

        // you can use the analog axes as digital values as well:
        {
            name: 'down',
            event: 'gamepad',
            gamepadIndex: 0,

            isAnalog: true,

            // 0, 1  <-- left analog stick x, y
            // 2, 3  <-- right analog stick x, y
            analogAxisId: 0,

            // -1 for left or up, 1 for right or down
            analogAxisDirection: -1,

            // how much dead zone to allow before converting from analog to digital.
            // defaults to 0.1
            analogAxisDeadZone: 0.2,
        }
        */
    ]
})


// runs every frame
function gameLoop () {

    // should be called at the beginning of every frame
    Input.pollState()

    // query the input state here, perform game logic and rendering:
    console.log(Input.down('walk_left')) // true when the key is first pushed down
    console.log(Input.held('walk_left')) // true while the key is pushed and held down
    console.log(Input.up('walk_left'))   // true when the key is released

    console.log('mouse position:', Input.Mouse.position[0], Input.Mouse.position[1])
    
    requestAnimationFrame(gameLoop)
}


requestAnimationFrame(gameLoop) // start the game

All values for keyboard keys are from https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values

0.3.0

1 year ago

0.2.0

1 year ago

0.5.0

10 months ago

0.4.0

1 year ago

0.3.1

1 year ago

0.6.0

10 months ago

0.5.1

10 months ago

0.1.0

1 year ago