将 GameInput 与现有输入堆栈相结合

由于 GameInput 中的功能保证可扩展到未来的设备并抽象为应用,因此我们仍然建议应用程序将其输入代码尽可能多地转移到 GameInputGameInput 的功能是先前所有输入 API 的超集。 因此,在大多数情况下,从先前的输入 API 进行移植是一个简单的过程。 最大的变化通常是,GameInput 是以输入为中心的,而不是以设备为中心的。 使用先前的 API 的代码通常会先枚举输入设备,然后读取设备输入。 但在 GameInput 中,这不是必需的。 适应以输入为中心的 GameInput 模型通常构成了要移植的先前代码的大部分结构性更改。

以下主题提供了有关 GameInput 和先前输入 API 之间的差异的详细信息。 这些主题还包含一些突出显示 API 之间的最大差异的代码示例。

从 Windows.Xbox.Input 移植到 GameInput

介绍如何在原始 Xbox One 软件开发工具包中从 Windows.Xbox.Input 进行移植。

从 XInput 移植到 GameInput

介绍如何从 XInput 移植。

将 GameInput 与较旧的 API 并排使用

对于希望将 GameInput 代码与旧接口和 API 并排使用的应用程序,API 非常灵活,也允许此用例。 这使应用程序能够轻松利用传感器和触觉支持等新功能,而无需替换其整个输入堆栈。 从版本 1 (v1) 开始, GameInputDeviceInfo 包含表示 pnppath 基础设备路径的字段。 此字段与 DirectInput 提供的路径 DIPROPGUIDANDPATH 相同。 它还可用于应用程序通过调用 CreateFile直接与设备接口。 请注意,非游戏板游戏输入协议 (GIP) 设备可能没有此属性,因为它们无法直接打开。

另请参阅

GameInput 简介

输入 API 参考

Microsoft 游戏开发工具包