Skip to content

Gamepad support #8

@shaan1974

Description

@shaan1974

Hello, it could be done easily with : https://github.com/neogeek/gamepad.js

function createEO(e,k)
{
    var eventObj = document.createEvent("Events");
    eventObj.initEvent(e, true, true);
    eventObj.which = k; 
    eventObj.keyCode = k;
    return eventObj;
}

var gamepad = new Gamepad();

    gamepad.on
    (
        'connect', 
        function () 
        { 
        }
    );

//  BTN1
//
    gamepad.on( 'press', 'button_1',    function ()     {   eventObj=createEO("keydown",88); keyDown(eventObj);     }   );
    gamepad.on( 'release', 'button_1',  function ()     {   eventObj=createEO("keyUp",88); keyUp(eventObj);         }   );

//  BTN2
//
    gamepad.on( 'press', 'button_2',    function ()     {   eventObj=createEO("keydown",90); keyDown(eventObj);     }   );
    gamepad.on( 'release', 'button_2',  function ()     {   eventObj=createEO("keyUp",90); keyUp(eventObj);         }   );    

//  START
//
    gamepad.on( 'press', 'start',       function ()     {   eventObj=createEO("keydown",13); keyDown(eventObj);     }   );
    gamepad.on( 'release', 'start',     function ()     {   eventObj=createEO("keydown",13); keyUp(eventObj);       }   );    
    
//  UP (38)
//
    gamepad.on( 'press', 'd_pad_up',    function ()     {   eventObj=createEO("keydown",38); keyDown(eventObj);     }   );
    gamepad.on( 'release', 'd_pad_up',  function ()     {   eventObj=createEO("keydown",38); keyUp(eventObj);       }   ); 

//  DOWN (40)
//
    gamepad.on( 'press', 'd_pad_down',      function ()     {   eventObj=createEO("keydown",40); keyDown(eventObj);     }   );
    gamepad.on( 'release', 'd_pad_down',    function ()     {   eventObj=createEO("keydown",40); keyUp(eventObj);       }   ); 

//  LEFT (37)
//
    gamepad.on( 'press', 'd_pad_left',      function ()     {   eventObj=createEO("keydown",37); keyDown(eventObj);     }   );
    gamepad.on( 'release', 'd_pad_left',    function ()     {   eventObj=createEO("keydown",37); keyUp(eventObj);       }   );    

//  RIGHT (39)
//
    gamepad.on( 'press', 'd_pad_right',     function ()     {   eventObj=createEO("keydown",39); keyDown(eventObj);     }   );
    gamepad.on( 'release', 'd_pad_right',   function ()     {   eventObj=createEO("keydown",39); keyUp(eventObj);       }   );      

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions