2015-05-22 10 views
6

Sto costruendo un'app dashboard NW.js (Node-Webkit) che voglio essere in grado di controllare con un controller di gioco (ad esempio: controller XBox 360 o controller Logitech).Posso usare i gamepad con Node-Webkit (NW.js)?

Sto chiamando il seguente onready ma quando eseguo il debug non riconosco alcun gamepad.

angular.element(document).ready(function() { 
if(canGame()) { 

    var prompt = "To begin using your gamepad, connect it and press any button!"; 
    $("#gamepadPrompt").text(prompt); 

    $(window).on("gamepadconnected", function() { 
     $("#gamepadPrompt").html("Gamepad connected!"); 
     console.log("connection event"); 
    }); 

    $(window).on("gamepaddisconnected", function() { 
     console.log("disconnection event"); 
     $("#gamepadPrompt").text(prompt); 
    }); 

} 

}); 


function canGame() { 
    return "getGamepads" in navigator; 
} 

Quando il debug del codice, non sembra essere individuare eventuali gamepad. Cerco anche:

navigator.webkitGetGamepads() 

ma non viene rilevato alcun gamepad.

Qualcuno ha utilizzato con successo i gamepad con un'app NW.js?

Apprezzerei molto l'aiuto per farlo funzionare.

+0

Non sono sicuro che questa domanda sia realmente correlata a NW.js. Il codice sopra sembra funzionare e, se testato in modo indipendente (sostituendo 'angular.element (document) .ready con' $ (document) .ready', e avendo una pagina html con solo un div # gamepadPrompt, funziona bene (testato su chrome 42.0.x utilizzando un controller XBox 360 su OSX 10.10). C'è più informazioni che puoi fornire? Quale browser stai testando? –

+0

Grazie per la tua risposta Cody. Per essere chiari, questo è attualmente un nwjs Non esiste un browser, solo un'istanza WebKit quando eseguo nw.exe. Sto eseguendo il debug impostando la barra degli strumenti: true Aggiungo il progetto a github quando torno dal lavoro – ITellYeHwat

+0

C'è un problema specifico con node-webkit (nw.js) e Windows 8.1 (ed eventualmente specifico per gamepad xbox) dove getGamepads() non restituirà mai alcun controller collegato. funzionerà bene con OSX, Windows 7 o se esegui il test nel browser Google Chrome sotto Windows 8.1. La soluzione è installare i driver del controller Windows 7 xbox 360 su Windows 8.1. Quindi tutto funzionerà di nuovo. Driver disponibili qui: https://www.microsoft.com/hardware/en-au/downloads#gaming – Zachstronaut

risposta

1

Ho trovato la risposta al mio problema. I gamepad sono effettivamente compatibili con NW.js. Tuttavia, stavo usando una vecchia versione (~ v0.08).

Il codice che ho postato in precedenza quando è in esecuzione con NW.js v0.12.2.