![游戏忽略游戏手柄设置](https://linux22.com/image/820310/%E6%B8%B8%E6%88%8F%E5%BF%BD%E7%95%A5%E6%B8%B8%E6%88%8F%E6%89%8B%E6%9F%84%E8%AE%BE%E7%BD%AE.png)
我最近买了一个有线 (USB) XBox 360 游戏手柄。它几乎可以在运行 Ubuntu 12.04 的笔记本电脑上即插即用。但是,一些控制轴混淆了。我使用 jstest-gtk 重新配置映射并使用 jscal-store(据说)保存新配置。但是,当我运行 Xonotic 或 Nexuiz(第一人称射击游戏)时,它们仍然使用原始的混合映射。我如何让这些游戏识别新配置?顺便说一句,我更关心 Xonotic 的工作,我真的不在乎 Nexuiz。请不要抱怨为什么我应该坚持使用鼠标和键盘玩游戏。[:-) 提前致谢。
答案1
问题是 jstest-gtk 只改变了操纵杆设备的映射,即/dev/input/js0
。然而,大多数使用 SDL 的现代游戏不再使用操纵杆设备,而是使用原始 evdev,即 /dev/input/eventX,并且不允许任何重新映射。
最快的解决方法是设置环境变量:
export SDL_JOYSTICK_DEVICE=/dev/input/js0
这将强制基于 SDL 的应用程序使用旧的操纵杆设备,从而遵守映射。它对非 SDL 应用程序没有帮助。
另一种选择是驱动精灵,它是用户空间 Xbox360 驱动程序,允许在驱动程序级别使用各种配置选项(包括键盘和鼠标模拟)。这适用于所有游戏。
答案2
在 Xonotic 的高级设置中,有两个变量:joy_axispitch
和joy_axisyaw
必须更改。不幸的是,当您关闭游戏时,Xonotic 会将它们重置为默认值。为了解决这个问题,/home/username/.xonotic/data
我在目录中添加了一个名为“config-mods.cfg”的文件。此文件中有两行: 最后,我用这两行代码制作了一个简单的 shell 脚本:
"joy_axispitch" "4"
"joy_axisyaw" "3"
cat /home/username/.xonotic/data/config-mods.cfg >> /home/username/.xonotic/data/config.cfg
/home/username/Applications/Xonotic/xonotic-linux64-sdl -basedir /home/username/Applications/Xonotic/`
我运行这个脚本而不是直接运行游戏,它添加了我需要的两行操纵杆支持。