2017-01-23 2 views
1

잠재적으로 XBOX에서 실행할 수있는 UWP 앱을 개발했습니다.UWP 앱에서 게임 컨트롤러 버튼 누르기 (ABXY)를 감지하는 방법

게임 패드 컨트롤러의 버튼을 눌렀는지 (A B X 또는 Y인지) 확인하고 싶습니다.

클릭 이벤트를 사용해야한다고 생각하십니까? 클릭 이벤트에있는 경우 클릭 이벤트를 확인하려면 무엇이 필요합니까?

트리거가 눌러 졌는지의 여부를 판정 포스트 찾고 ..

Controller support for Xbox one in Windows UWP

/* 
* 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 
} 

I는 ABXY 버튼 중 하나가 눌러 졌는지 여부를 검사 동등한 방법이 추정? 나는 다음 번에 기회를 잡을 것이다. 다른 주에

이 블로그 게시물은 사람들이 X 박스 하나 http://grogansoft.com/blog/?p=1278

업데이트에 대한 UWP 개발을 함께 시작하는 정말 유용 같습니다 내가 GetCurrentReading를 호출 할 수 있습니다 (같은)을 GamepadReading 구조를 가져 본다. 그로부터 GamepadButtons의 상태가됩니다.

답변

3

CoreWindow 또는 다른 UWP 컨트롤의 이벤트는 사용자가 게임 패드 단추를 클릭하더라도 실행됩니다. 당신은 확인을위한 VirtualKey 열거 그래서 기본적인 방법 GamepadAGamepadB 같은 값을 찾을 수 있습니다 자신과 같이 할 수 눌러 :

private void CoreWindow_KeyDown(CoreWindow sender, KeyEventArgs args) 
{ 
    if (args.Handled) 
    { 
     return; 
    } 

    switch (args.VirtualKey) 
    { 
     case VirtualKey.GamepadA: 
      // Gamepad A button was pressed 
      break; 

     case VirtualKey.GamepadB: 
      // Gamepad B button was pressed 
      break; 

     case VirtualKey.GamepadX: 
      // Gamepad X button was pressed 
      break; 

     case VirtualKey.GamepadY: 
      // Gamepad Y button was pressed 
      break; 
    } 
} 

당신은 (생성자의 예를 들어) 이벤트를 구독 할 수 있습니다

Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDown; 
+0

괜찮습니다. 나는 그것을 또한 시도 할 것이다. 나는 일반적으로 받아 들여지는 것이 나의 것입니까? (나는 아직도 나의 접근을 시험하지 않았다). –

+0

버튼이 두드려 졌는지 여부에 관계없이 정보를 얻는 데 너무 복잡하다는 생각이 듭니다. 게임과 내가 생각하는 그런 것들에 더 유용 할 것이다. –