Tôi tự hỏi làm thế nào tôi có nghĩa vụ phải xử lý đầu vào cho các ứng dụng UWP nhắm mục tiêu Xbox One. Tôi đã nhận thấy DirectInput, nhưng tôi thấy hai vấn đề với nó đối với trường hợp sử dụng của tôi:Hỗ trợ điều khiển cho Xbox một trong Windows UWP
Từ MSDN, nó dường như chỉ hỗ trợ Xbox 360 bộ điều khiển
XInput là một API cho phép các ứng dụng để nhận đầu vào từ Xbox 360 Controller cho Windows. Bộ điều khiển hiệu ứng rumble và đầu vào và đầu ra bằng giọng nói được hỗ trợ.
DirectX và tất cả API của nó (Direct2d, Direct3D, Xinput, v.v ...) chỉ được hỗ trợ trên C/C++. Điều đó có nghĩa là ngay cả khi Xinput hỗ trợ Xbox một bộ điều khiển, tôi không thể sử dụng C# hoặc JavaScript để phát triển các ứng dụng thực sự phổ quát.
Tôi có các tùy chọn nào (ít nhất là C# liên quan) để hỗ trợ bộ điều khiển Xbox One trên ứng dụng Windows UWP?
CẬP NHẬT
Do một vài câu trả lời hữu ích chỉ ra đúng namespace, tôi nghĩ rằng tôi đã tổng hợp một số mã sử dụng Windows.Gaming.Input
/*
* Note: I have not tested this code.
* If it is incorrect, please do edit with the fix.
*/
using Windows.Gaming.Input;
// bla bla bla boring stuff...
// Get the first controller
var controller = Gamepad.Gamepads.First();
// Get the current state
var reading = controller.GetCurrentReading();
// Check to see if the left trigger was depressed about half way down
if (reading.LeftTrigger == 0.5;)
{
// Do whatever
}
Nếu bạn đang sử dụng Javascript thì:
var controller = Windows.Gaming.Input.Gamepad.gamepads.first();
var reading = controller.getCurrentReading();
if (reading.leftTrigger === 0.5) {
// Do whatever
}
Đây là mẫu đang chạy của ứng dụng UWP sử dụng Windows.Gaming.Input https://github.com/tiagonmas/GamepadUWP –
Tại sao bạn sử dụng var cho bộ điều khiển và đọc đối tượng? – BossmanT