2015-05-22 13 views
6

Tôi đang tạo ứng dụng bảng điều khiển NW.js (Node-Webkit) mà tôi muốn có thể điều khiển bằng bộ điều khiển trò chơi (ví dụ: bộ điều khiển Xbox 360 hoặc bộ điều khiển Logitech).Tôi có thể sử dụng gamepad với Node-Webkit (NW.js) không?

Tôi đang gọi tính năng onready sau đây nhưng khi tôi gỡ lỗi, nó không nhận ra bất kỳ gamepad nào.

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

Khi tôi gỡ lỗi mã, có vẻ như không phát hiện thấy bất kỳ gamepad nào. Tôi cũng thử:

navigator.webkitGetGamepads() 

nhưng không hiển thị mọi gamepad đang được phát hiện.

Có ai đã sử dụng thành công gamepad với ứng dụng NW.js không?

Tôi sẽ đánh giá rất cao một số trợ giúp để ứng dụng này hoạt động.

+0

Tôi không chắc chắn câu hỏi này thực sự liên quan đến NW.js chút nào. Đoạn mã trên có vẻ như nó sẽ hoạt động, và khi được kiểm tra độc lập (thay thế 'angular.element (document) .ready với' $ (document) .ready', và có một trang html chỉ với một div # gamepadPrompt, nó hoạt động tốt (thử nghiệm trên chrome 42.0.x sử dụng bộ điều khiển XBox 360 trên OSX 10.10) Có thông tin nào bạn có thể cung cấp nữa không? Bạn đang thử nghiệm trình duyệt nào? –

+0

Cảm ơn bạn đã trả lời câu hỏi của bạn Cody Để rõ ràng, đây hiện là một phần mềm Không có trình duyệt, chỉ là một cá thể WebKit khi tôi chạy nw.exe Tôi đang gỡ lỗi bằng cách thiết lập thanh công cụ: true Tôi sẽ thêm dự án vào github khi tôi quay trở lại công việc – ITellYeHwat

+0

Có một vấn đề cụ thể với node-webkit (nw.js) và Windows 8.1 (và có thể dành riêng cho gamepads xbox), nơi getGamepads() sẽ không bao giờ trả về bất kỳ bộ điều khiển nào được kết nối. sẽ hoạt động tốt với OSX, Windows 7 hoặc nếu bạn thử nghiệm trong trình duyệt Google Chrome trong Windows 8.1. Giải pháp là cài đặt trình điều khiển bộ điều khiển Windows 7 xbox 360 trên Windows 8.1. Sau đó mọi thứ sẽ hoạt động trở lại. Trình điều khiển có sẵn tại đây: https://www.microsoft.com/hardware/en-au/downloads#gaming – Zachstronaut

Trả lời

1

Tôi đã tìm thấy câu trả lời cho vấn đề của mình. Gamepads thực sự tương thích với NW.js. Tuy nhiên, tôi đã sử dụng một phiên bản cũ (~ v0.08).

Mã tôi đã đăng trước đó khi chạy với NW.js v0.12.2.

Các vấn đề liên quan