Gamepad クラス

定義

ゲームパッドを表します。

public ref class Gamepad sealed
public ref class Gamepad sealed : IGameControllerBatteryInfo
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Gamepad final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Gamepad final : IGameControllerBatteryInfo
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Gamepad
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Gamepad : IGameControllerBatteryInfo
Public NotInheritable Class Gamepad
Public NotInheritable Class Gamepad
Implements IGameControllerBatteryInfo
継承
Object Platform::Object IInspectable Gamepad
属性
実装

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)

次のコード スニペットは、 Gamepad.Gamepads リストをループ処理し、それぞれをベクターに追加する方法を示しています。 ベクターにロックを設定する必要があります。これは、いつでも変更される可能性があるためです (コントローラーが切断されたり再接続されたりする可能性があります)。

#include <concrt.h>
#include <winrt/Windows.Gaming.Input.h>
using namespace winrt;
using namespace Windows::Gaming::Input;
...
std::vector<Gamepad> myGamepads;
concurrency::critical_section myLock{};

for (auto const& gamepad : Gamepad::Gamepads())
{
    // Test whether the gamepad is already in myGamepads; if it isn't, add it.
    concurrency::critical_section::scoped_lock lock{ myLock };
    auto it{ std::find(begin(myGamepads), end(myGamepads), gamepad) };

    if (it == end(myGamepads))
    {
        // This code assumes that you're interested in all gamepads.
        myGamepads.push_back(gamepad);
    }
}
auto myGamepads = ref new Vector<Gamepad^>();
critical_section myLock{};

for (auto gamepad : Gamepad::Gamepads)
{
    // Test whether the gamepad is already in myGamepads; if it isn't, add it.
    critical_section::scoped_lock lock{ myLock };
    auto it = std::find(begin(myGamepads), end(myGamepads), gamepad);

    if (it == end(myGamepads))
    {
        // This code assumes that you're interested in all gamepads.
        myGamepads->Append(gamepad);
    }
}

注釈

Gamepad クラスのインスタンスを直接作成することはできません。代わりに、Gamepad クラスのインスタンスは、接続されているすべてのゲームパッドを一覧表示する Gamepad.Gamepads プロパティまたは Gamepad.GamepadAdded イベントを通じて取得されます。

サポートされているデバイス

ゲームパッド は、GIP (ゲーム入力プロトコル) または XUSB 互換ゲームパッドをサポートしています。

バージョン履歴

Windows のバージョン SDK バージョン 追加された値
1607 14393 GetButtonLabel
1703 15063 FromGameController
1703 15063 TryGetBatteryReport

プロパティ

Gamepads

接続されているすべてのゲームパッドの一覧。

Headset

ゲームパッドに接続されているオーディオ ヘッドセット。

IsWireless

ゲームパッドのワイヤレス状態を示す値を取得します。

User

ゲームパッドに関連付けられているユーザー。

Vibration

ゲームパッドのモーター速度について説明します。

メソッド

FromGameController(IGameController)

指定されたゲーム コントローラーをゲームパッドとして返します。

GetButtonLabel(GamepadButtons)

指定したボタンのボタン ラベルを取得します。

GetCurrentReading()

ゲームパッドの状態のスナップショットを取得します。

TryGetBatteryReport()

ゲームパッドの現在のバッテリー状態に関する情報を取得します。

イベント

GamepadAdded

新しいゲームパッドが接続されたときに通知します。

GamepadRemoved

ゲームパッドが切断されたときに通知します。

HeadsetConnected

ヘッドセットがゲームパッドに取り付けられているときに通知します。

HeadsetDisconnected

ヘッドセットがゲームパッドから切断されたときに通知します。

UserChanged

ゲームパッドに関連付けられているユーザーが変更されたことを通知します。

適用対象

こちらもご覧ください