Skip to main content
Windows.Xbox.Input 是用于 GDK 之前的 XBOX One 软件开发工具包开发的输入 API。从概念上讲,GameInput 看待设备和输入读取的方式与之不同。本主题介绍 Windows.Xbox.InputGameInput 之间的一些关键差异。

以输入为中心与以设备为中心

Windows.Xbox.InputGameInput 的关键区别在于,前者要求你从收集设备开始,并将输入状态作为设备的属性;相比之下,GameInput 从可筛选的输入读取流开始,读取会关联相应设备。

检测 A 按键按下

游戏启动时通常需要用户按 A 表示准备好继续。这里通过示例比较在 Windows.Xbox.InputGameInput 中如何实现。此示例仅检测游戏手柄。请注意,示例经过简化以便演示。

Windows.Xbox.Input

以下代码示例先枚举连接到系统的所有游戏手柄并将它们存储在 gamepads 向量中,然后在循环中遍历 gamepads,查看它们各自的当前输入读取,并检查每次读取中的 A 键。
此代码引用的是较早的 API。这些调用在 GameInput 中不存在。
此模型可以改进。游戏必须存储连接到系统的不同设备的副本。你必须了解每个设备的具体信息。此外,通过存储所有游戏手柄的本地副本,代码捕获的是某一时刻的状态,而非获取最新的读取。

GameInput

在以下代码示例中,代码查找来自任何设备的最新游戏手柄读取。通过调用 GetCurrentReading 并将 GameInputKind 筛选器设置为 GamePad,代码请求 m_gameInput 只返回游戏手柄读取。然后代码查询读取的状态并检查 A 键是否按下。 你可能希望跟踪自己在与哪个游戏手柄通信。有关更完整的示例,请参阅 GameInput 读取
GameInput 不要求你遍历设备并检查每个读取。相反,你可以通过一次方法调用获取最新的输入状态。你可以自行选择要了解每个物理设备的多少信息。

参考 API 文档

另请参阅

GameInput 概述 输入 API 参考 Microsoft Game Development Kit
最后修改于 2026年8月24日