2015-05-22 3 views
6

Я создаю приложение панели NW.js (Node-Webkit), которое я хочу контролировать с помощью игрового контроллера (например, контроллер XBox 360 или контроллер Logitech).Могу ли я использовать геймпады с Node-Webkit (NW.js)?

Я называю следующее onready, но когда я отлаживаю его, не признавая никаких игровых приставок.

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

Когда я отлаживаю код, он, кажется, не обнаруживает никаких геймпадов. Я также пробовал:

navigator.webkitGetGamepads() 

но он также не показывает никаких геймпадов.

Кто-нибудь успешно использовал геймпады с приложением NW.js?

Я был бы очень признателен за помощь в этом.

+0

Я не уверен, что этот вопрос действительно связан с NW.js. Вышеприведенный код кажется, что он должен работать, и когда он проверяется независимо (заменяя 'angular.element (document) .ready на' $ (document) .ready' и имея html-страницу только с div # gamepadPrompt, она отлично работает (протестирован на chrome 42.0.x, используя контроллер XBox 360 на OSX 10.10). Больше информации вы можете предоставить? В каком браузере вы тестируете? –

+0

Благодарим вас за ответ Коди. Чтобы быть ясным, в настоящее время это nwjs проект. Нет браузера, просто экземпляр WebKit, когда я запускаю nw.exe. Я отлаживаю настройку панели инструментов: true. Я добавлю проект в github, когда вернусь с работы. – ITellYeHwat

+0

Существует конкретная проблема с узлом-webkit (nw.js) и Windows 8.1 (и, возможно, специфичным для игровых систем xbox), где getGamepads() никогда не вернет подключенные контроллеры. будет отлично работать с OSX, Windows 7 или если вы проверите в браузере Google Chrome под Windows 8.1. Решение заключается в установке драйверов контроллера Windows 7 xbox 360 в Windows 8.1. Тогда все будет работать снова. Драйверы доступны здесь: https://www.microsoft.com/hardware/en-au/downloads#gaming – Zachstronaut

ответ

1

Я нашел ответ на свой вопрос. Геймпады действительно совместимы с NW.js. Однако я использовал старую версию (~ v0.08).

Код, который я опубликовал ранее при работе с NW.js v0.12.2.

Смежные вопросы