在我简单的想法中,发送一个漂亮的操纵杆图像似乎很有用,其中包含图像上按钮和轴位置的索引。可以通过 XInput 或 DirectInput API 查询这样的事情吗?是否是特定于驱动程序的,如果是,哪些驱动程序支持此功能?
特别是,我想支持罗技滚轮和 XBOX 360 控制器。Logitech Profiler 似乎带有此信息(或从驱动程序中提取)。它也可以在我的代码中访问吗?
我看到游戏控制器属性中显示了操纵杆的图像,但我假设整个属性页面都是从驱动程序报告的?
在我简单的想法中,发送一个漂亮的操纵杆图像似乎很有用,其中包含图像上按钮和轴位置的索引。可以通过 XInput 或 DirectInput API 查询这样的事情吗?是否是特定于驱动程序的,如果是,哪些驱动程序支持此功能?
特别是,我想支持罗技滚轮和 XBOX 360 控制器。Logitech Profiler 似乎带有此信息(或从驱动程序中提取)。它也可以在我的代码中访问吗?
我看到游戏控制器属性中显示了操纵杆的图像,但我假设整个属性页面都是从驱动程序报告的?
由于 Windows XInput API 是专门为 Xbox 360 控制器创建的,因此可以对控制器布局进行大量假设。即使是现在,在 XBOne 游戏手柄的官方驱动程序发布之后,官方API文档还是不遗余力地明确将讨论限制在 360 手柄上。
XInput 不提供此功能,也不应该提供此功能,XInput 是用于访问控制器状态和控制器功能的接口。这是您可以在代码中手动检测到的东西,找到正确的设备 ID,我相信这也是 Logitech Profiler 所做的(因为它是 Logitech 的自定义应用程序),它只是将图像作为程序中的资源本身。
通常的做法是您联系 Microsoft、Sony、Nintendo 或 Logitech,他们将获得其控制器的高质量图像,这些图像已获准在游戏中使用。特别是对于主机游戏中的控制器图像,您需要遵循某些要求。Windows 和其他操作系统的游戏不遵循相同的要求,但您仍然应该能够从 Microsoft 和 Logitech 检索此信息。
通过自己检索资源,您还可以将它们转换为适合您呈现它们的界面的格式。