【问题标题】:how to code a program that uses xbox controller under linux如何在linux下编写一个使用xbox控制器的程序
【发布时间】:2021-11-14 06:10:03
【问题描述】:

目前我是一名 IT 学生,我想制作一款游戏作为我的学期工作。我想在 C 中制作一个 Geometry Wars 克隆(因为我们绑定到 C,所以没有 C++/C#,只有 C 和 OpenGL),当它完成时,我想将它作为 Linux/Mac/PC 的开源游戏发布。我想问一下,我如何将 Xbox360 控制器(有线) 用作游戏输入设备?经过一些研究,我了解到 XInput 可以做这些事情,但这真的是多平台的东西吗?我很好奇你们在 Linux 下用 C 语言对 Xbox 控制器输入进行编码。

【问题讨论】:

  • 我假设您使用的是普通的 Wireless XBox 360 控制器,其中之一是:microsoft.com/games/en-US/Hardware/Controllers/Pages/… ?
  • 它不显示为标准 USB 控制器吗? (我不知道)
  • 好吧,也许我问的有点不同...我如何通过 C 编程语言从 USB 设备(现在的 xbox360 控制器)捕获输入?我目前从未在 C 语言中使用过 USB 外围设备
  • 请注意,仅使用 C 和 OpenGL 并不能真正创建很多东西,因为 C 和 OpenGL 都不关心窗口、输入和其他特定于平台的东西。使用 libSDL 来掩盖这一点,它还提供了一个跨平台的操纵杆和键盘 API。 Linux 有驱动程序可以使 xbox 控制器显示为操纵杆,并且您可以将按钮映射为看起来像按键。
  • 我认为我以一种非常愚蠢的方式总结了我的问题,没关系,我从中学到了 :D 我的意思只是,我只能使用 C 并使用外部库扩展它,比如 OpenXX 的东西或那。我会试试那个 SDL 的东西,也许它会起作用,谢谢你的回答:)

标签: c linux xbox360


【解决方案1】:

我查看并找到了一些关于此的信息,我发现:

  1. 使用SDL library
  2. 使用github中的函数linux/joystick.h

我不知道该怎么做,但最好开始研究什么是 SDL,在 there 或上面的 github 中。

解决方法:
在 github 上查看 this repo。它是 JoyToKey 的 Linux 替代品。您可以使用它来为您的控制器绑定键,并绑定诸如 CRTL+SPACE 之类的键或将某些按钮绑定到虚拟键盘。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 2020-10-10
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    相关资源
    最近更新 更多