利用 JInput 构建游戏手柄控制器
在 PC 上玩游戏时,使用键盘和鼠标有时就像穿着燕尾服打网球,虽然可行,但总觉得不太对劲。要是能拿出游戏手柄、操纵杆或方向盘,插上后以更自然的方式玩游戏,那岂不是很酷?其实这并不难,下面我将详细介绍。
1. JInput 简介
JInput 是一个用于发现和轮询输入设备的跨平台 API,支持从常见的键盘、鼠标到游戏手柄、操纵杆等有趣设备。其支持的设备范围取决于底层操作系统:
- Windows :采用 DirectInput。
- Linux :依赖 /dev/input/event 设备节点。
- Mac OS X *:也有相应版本,但在该系统上的实现不太完整。
JInput 于 2003 年首次出现,是 Sun Microsystems 游戏技术小组发起的开源技术集合(JOGL、JOAL、JInput)的一部分,由 JSR 134 专家组成员开发。我使用的是 2006 年 5 月的 Windows 版本(截至 2007 年 1 月是最新版本),从 https://jinput.dev.java.net/ 下载的 jinput_windows_20060514.zip 文件。
需要注意的是,近期的 JInput 版本与 2004 年流行的 1.1 版本有所不同,旧的 Axis 类已重命名为 Component,组件标识符类也进行了重组和扩展,因此一些旧的 JInput 示例可能需要修改才能运行。