由于 GameInput 中的功能保证可扩展到未来的设备并抽象为应用,因此我们仍然建议应用程序将其输入代码尽可能多地转移到 GameInput。
GameInput 的功能是先前所有输入 API 的超集。 因此,在大多数情况下,从先前的输入 API 进行移植是一个简单的过程。 最大的变化通常是,GameInput 是以输入为中心的,而不是以设备为中心的。 使用先前的 API 的代码通常会先枚举输入设备,然后读取设备输入。 但在 GameInput 中,这不是必需的。 适应以输入为中心的 GameInput 模型通常构成了要移植的先前代码的大部分结构性更改。
以下主题提供了有关 GameInput 和先前输入 API 之间的差异的详细信息。 这些主题还包含一些突出显示 API 之间的最大差异的代码示例。
从 Windows.Xbox.Input 移植到 GameInput
介绍如何在原始 Xbox One 软件开发工具包中从 Windows.Xbox.Input 进行移植。
介绍如何从 XInput 移植。
将 GameInput 与较旧的 API 并排使用
对于希望将 GameInput 代码与旧接口和 API 并排使用的应用程序,API 非常灵活,也允许此用例。 这使应用程序能够轻松利用传感器和触觉支持等新功能,而无需替换其整个输入堆栈。 从版本 1 (v1) 开始, GameInputDeviceInfo 包含表示 pnppath 基础设备路径的字段。 此字段与 DirectInput 提供的路径 DIPROPGUIDANDPATH 相同。 它还可用于应用程序通过调用 CreateFile直接与设备接口。 请注意,非游戏板游戏输入协议 (GIP) 设备可能没有此属性,因为它们无法直接打开。