c - 我如何在自定义编写的 C 游戏或程序中使用 USB Controller

标签 c visual-c++ usb

问题 已经厌倦了编写函数来对角移动 Sprite 和角色,并分配不与 4 个主要方向键(向上、向下、向左、向右)(如 W、A、S、D)一起流动的键,这有点拖累和一个孔。但是我最近得到了这个 USB Controller http://www.logitech.com/en-us/gaming/controllers/devices/288我希望能够将它的用法添加到我的基于控制台的游戏或 Windows 应用程序中。因为它具有支持舒适的对角线移动的模拟摇杆。

解决方法/可能的解决方案 有大量关于在 C# 中执行此操作的文档,但我更习惯使用 C,并且对 C# 几乎一无所知。

问题 在没有附加库的情况下是否可以在 C 中使用?如果可以,我如何在我的程序中使用 USB Controller 支持(并将该功能添加到我 future 的项目中)。非常感谢任何资源或提示。欢迎使用 Linux 或 Windows 解决方案。提前致谢。

最佳答案

如果您使用的是 Windows,您可以尝试 Direct Input ,或 XInput 它对操纵杆和游戏 handle 有很好的支持。它也用于 XBox 开发。许多游戏项目都使用它,这里是一个完整的 list

另一个不错的选择是 SDL ,它对 GamePads(在 Windows 系统上建立在 DirectInput 之上)有足够的支持并且平台独立,所以这可能是一个优势。我也认为 Allegro支持他们,但我不确定。

注意:抱歉,如果您不打算重新发明轮子并为市场上每个该死的 GamePad 编写驱动程序和 API,您将必须使用额外的库。 p>

关于c - 我如何在自定义编写的 C 游戏或程序中使用 USB Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7775733/

相关文章:

c++ - VC++中Float数据类型的值,如何判断是否混合了字符串或特殊字符

Android USB枚举

javascript - 在多个日期分发事件

c - 构建 Linux 调试器 C

c++ - Visual Studio 2012 __cplusplus 和 C++ 11

Android 5.0 Lollipop - Nexus 10 重启和未检测到 USB 调试?

php - 无法使用fopen或php_serial.class.php写入/dev/ttyUSB0

c++ - 如何告诉我的 Eclipse Helios CTD 项目是 C/C++ 项目?

c - 线程并发C程序

windows - 为什么 ZeroMQ PGM 多播接收卡在中间并且没有进一步接收数据包