2015-05-22 15 views
6

Ich baue eine NW.js (Node-Webkit) Dashboard-App, die ich mit einem Game-Controller (zum Beispiel: XBox 360 Controller oder Logitech Controller) steuern können.Kann ich Gamepads mit Node-Webkit (NW.js) verwenden?

Ich rufe die folgenden onready, aber wenn ich debugge es nicht erkennen Gamepads.

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; 
} 

Wenn ich den Code debugge, scheint es keine Gamepads zu erkennen. Ich versuche auch:

navigator.webkitGetGamepads() 

aber es zeigt auch keine Gamepads erkannt werden.

Hat jemand erfolgreich Gamepads mit einer NW.js App verwendet?

Ich würde einige Hilfe sehr schätzen, die dieses zum Funktionieren bringt.

+0

Ich bin mir nicht sicher, dass diese Frage wirklich zu NW.js überhaupt verwandt ist. Der obige Code scheint zu funktionieren, und wenn er unabhängig getestet wird (er ersetzt angle.element (document) .ready durch '$ (document) .ready') und eine html Seite mit nur div # gamepadPrompt hat, funktioniert es gut (getestet auf chrome 42.0.x mit einem XBox 360 Controller auf OSX 10.10) Gibt es weitere Informationen, die Sie zur Verfügung stellen können? Welchen Browser testen Sie? –

+0

Vielen Dank für Ihre Antwort Cody. Um klar zu sein, ist dies derzeit ein nwjs Projekt Es gibt keinen Browser, nur eine WebKit-Instanz, wenn ich nw.exe ausführe.Ich debugge mit der Einstellung toolbar: true Ich werde das Projekt zu Github hinzufügen, wenn ich von der Arbeit zurückkomme. – ITellYeHwat

+0

Es gibt ein spezifisches Problem mit node-webkit (nw.js) und Windows 8.1 (und möglicherweise spezifisch für xbox gamepads), wo getGamepads() niemals verbundene Controller zurückgibt funktioniert gut mit OSX, Windows 7 oder wenn Sie im Google Chrome-Browser unter Windows 8.1 testen. Die Lösung besteht darin, die Windows 7 xbox 360 Controller-Treiber unter Windows 8.1 zu installieren. Dann wird alles wieder funktionieren. Treiber verfügbar hier: https://www.microsoft.com/hardware/en-au/downloads#gaming – Zachstronaut

Antwort

1

Ich fand die Antwort auf mein Problem. Gamepads sind tatsächlich mit NW.js kompatibel. Ich benutzte jedoch eine alte Version (~ v0.08).

Der Code, den ich früher beim Ausführen mit NW.js v0.12.2 geschrieben habe.