2017-01-23 12 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 
} 

私はABXYボタンのいずれかが押されたかどうかをチェックするのと同等な方法があると推定?。私はチャンスを得る次回をチェックします。別のノートで

、このブログの記事は、人々が更新Xboxの一つhttp://grogansoft.com/blog/?p=1278

ためUWPを開発して起動するための非常に便利になります。 私はGamepadReading構造を得るためにGetCurrentReading()を呼び出すことができるように見えます。それから、GamepadButtonsの状態になります。

答えて

3

または他のUWPコントロールのイベントは、ユーザーがゲームパッドのボタンをクリックしても発生します。

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

あなたは(コンストラクタで例えば)イベントをサブスクライブする必要があります:あなたは自分の押しをチェックするので、基本的な方法は、次のようになりますVirtualKey列挙でこのようなGamepadAGamepadBなどの値を見つけることができます

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

Hmm ok。私もそれを試みます。あなたのアプローチは一般的に受け入れられている方法ですか? (私はまだ私のアプローチをまだテストしていない)。 –

+0

あなたのアプローチは、ボタンがタップされたかどうかだけで情報を得るためには複雑すぎると思います。それは私が考えるゲームやそのようなことにもっと役立つだろう。 –

関連する問題