Skip to content

uupaa/GamePad.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GamePad.js Build Status

npm

Easy way to using GamePad API.

This module made of WebModule.

Documentation

Browser, NW.js and Electron

<script src="<module-dir>/lib/WebModule.js"></script>
<script src="<module-dir>/lib/GamePadDevice.js"></script>
<script src="<module-dir>/lib/GamePad.js"></script>
<script>
GamePads.VERBOSE = true;

var players = [{ ... }, { ... }];

var pad = new GamePad(function(connect(player) {
    console.log("connected. player: " + player);
});

function gameLoop() {
    if (pad.connected) {
        pad.input();

        if (pad[0]) {
            input(pad[0].values, pad[0].diffs);
        }
        if (pad[1]) {
            input(pad[1].values, pad[1].diffs);
        }
    }
    update();
    render();
    requestAnimationFrame(gameLoop);
}
gameLoop();


function input(values,  // @arg Uint8Array - current values
               diffs) { // @arg Uint8Array - diff values
    // --- Jump ---
    if (diffs[GAMEPAD_KEY_A]) {
        if (values[GAMEPAD_KEY_A]) {  // A BUTTON OFF -> ON
            startJump(...);
        } else {       // A BUTTON ON -> OFF
            endJump(...);
        }
    }

    // --- D-PAD ---
    if (values[GAMEPAD_KEY_L]) {
        moveLeft(...);
    } else if (values[GAMEPAD_KEY_R]) {
        moveRight(...);
    }
}

</script>

About

Easy way to using GamePad API.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published