游戏忽略游戏手柄设置

游戏忽略游戏手柄设置

我最近买了一个有线 (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_axispitchjoy_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/`

我运行这个脚本而不是直接运行游戏,它添加了我需要的两行操纵杆支持。

相关内容