Gamepad 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示游戏板。
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
- 继承
- 属性
- 实现
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.Gamepads 属性或通过 Gamepad.GamepadAdded 事件检索 Gamepad 类的 实例。
支持的设备
游戏板 支持任何 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 |
与游戏板关联的用户发生更改时发出信号。 |