2016-06-05 2 views
0

UWP 애플리케이션에서 두 개의 Xbox One 썸 스틱 좌표에 액세스하려면 어떻게해야합니까? 또한 X, Y, A 및 B 버튼을 눌렀을 때 어떻게 감지 할 수 있습니까?Xbox One 컨트롤러 썸 스틱 좌표 (UWP 앱)

편집 : 나는 MainPage.xaml.cs를에 MainPage 방법에 Gamepad.Gamepads.First()를 사용할 때 나는 System.Linq.dll 입력 "System.InvalidOperationException"의 예외를 받고있다

+0

가능한 복제본 : http://stackoverflow.com/questions/31977767/controller-support-for-xbox-one-in-windows-uwp – Konstantin

+0

3 지연 후'Gamepad.Gamepads.First()'가 표시되도록하십시오. 초 정도. – Bells

답변

2

당신 gaming technologies for UWP 및 특히 Windows.Gaming.Input API을보아야합니다. 한마디로

: 당신이 당신의 게임 패드에 액세스 할 수 후 :

var controller = Gamepad.Gamepads.First(); 

을 당신은 그것에서 GamepadReadings을 읽기 시작 :

var reading = controller.GetCurrentReading(); 

각 읽기 썸 스틱, 트리거 및 버튼에 데이터가 포함되어 있습니다.

var leftThumbstickX = reading.LeftThumbstickX; 
var aButton = (reading.Buttons & GamepadButtons.A); 
+0

Gamepad.Gamepads.Count는 응용 프로그램이 Xbox에서 실행되는 동안 Xbox One 컨트롤러가 켜져 있어도 나에게 0을 반환합니다. 따라서 다음 문장에서 예외가 있습니다. var controller = Gamepad.Gamepads.First(); 이 문제를 해결하는 방법에 대해 알고 싶습니다. – Dhruv

+0

MainPage.xaml.cs의 MainPage 메서드에서 Gamepad.Gamepads.First()를 사용할 때 System.Linq.dll에 "System.InvalidOperationException"유형의 예외가 발생했습니다 – Dhruv

+0

컨트롤러가 표시되지 않습니다. 신청. PC와 UWP 앱을 PC에 연결하면 작동합니까? – Konstantin

1

엄지 손가락에 대해서는 확실하지 않지만 게임 패드 버튼을 다른 키 누르기 이벤트로 감지 할 수 있습니다.

페이지의 KeyUp 이벤트 나 글로벌 Window.Current.CoreWindow.KeyUp 이벤트에 연결하여 VirtualKey.GamepadB과 같은 게임 패드 버튼을 확인하십시오.

이 앱이 XBox One에서 실행될 때 작동하며 USB 케이블을 사용하여 XBox One 컨트롤러를 PC에 연결할 때도 작동합니다.

+0

D 패드와 썸 스틱은 키패드 이벤트를 발생시킵니다. 각각의 실제 키 코드는 다음에서 볼 수 있습니다. https://github.com/Microsoft/TVHelpers/blob/master/tvjs/src/DirectionalNavigation/directionalnavigation-1.0.0.0.js#L701 – Bart

+0

감사합니다. 사용하기가 훨씬 쉽습니다. 게임 패드 수치를 폴링하는 것보다 –

관련 문제