使用XInput,是否可以获得控制器的图像?

时间:2014-01-03 17:28:18

标签: directx user-experience joystick directinput xinput

在我的简单介绍中,通过图像上的按钮索引和轴位置来传送操纵杆的漂亮图像似乎很有用。可以通过XInput或DirectInput API查询这样的事情吗?它是否是特定于驱动程序的,如果是这样的驱动程序支持这个?

特别是,我想支持罗技车轮和XBOX 360控制器。 Logitech Profiler似乎带有这些信息(或从驱动程序中提取)。它也可以在我的代码中访问吗?

我看到操纵杆的图像显示在游戏控制器属性中,但我假设从驱动程序报告整个属性页?

2 个答案:

答案 0 :(得分:0)

XInput不提供此功能,并且不应该提供,XInput是用于访问控制器状态和控制器功能的接口。这是您可以在代码中手动检测到的,找到正确的设备ID,我相信这也是Logitech Profiler所做的事情(因为它是Logitech的自定义应用程序),它只是将图像作为程序中的资源本身。

通常做的是联系Microsoft,Sony,Nintendo或Logitech,他们将获得批准用于游戏的高质量控制器图像。特别是对于控制台游戏中控制器的图像,您需要遵循一些要求。对于Windows和其他操作系统的游戏,不会遵循相同的要求,但您仍然可以从Microsoft和Logitech检索此信息。

通过自己检索资源,您还可以将它们转换为适合您呈现它们的界面的格式。

答案 1 :(得分:0)

由于Windows XInput API是专门为XBox 360控制器创建的,因此可以对控制器布局做出大量假设。即使是现在,在XBOne游戏手柄的官方驱动程序发布后,官方的API文件仍然会明确地将讨论限制在360个打击垫上。