将 ABS_X 和 ABS_Y 转换为有意义的值
Convert ABS_X and ABS_Y into meaningful values
我是游戏控制器映射的新手,我正在尝试从操纵杆中理解 ABX_X 和 ABS_Y 值 return。我的目标是采用这些值并将它们变成“向前移动”、“向后移动”、“转向”等。我似乎无法弄清楚将进入的值转换为行动的公式是什么。下面是我的 ABSInfo 数据(来自 Python InputDevice)和一些示例值。任何引导我朝着正确方向前进的帮助都会非常有帮助。
ABS 信息功能
('EV_ABS', 3): [(('ABS_X', 0), AbsInfo(value=32768, min=0, max=65535, fuzz=0, flat=4095, resolution=0)), (('ABS_Y', 1), AbsInfo(value=32768, min=0, max=65535, fuzz=0, flat=4095, resolution=0))
Y 的样本值
Y VALUE: 3101
Y VALUE: 5241
Y VALUE: 6931
Y VALUE: 9597
Y VALUE: 12059
Y VALUE: 14990
Y VALUE: 17467
Y VALUE: 19878
Y VALUE: 32768
X 的示例值:
X VALUE: 23596
X VALUE: 14042
X VALUE: 0
X VALUE: 818
X VALUE: 5943
X VALUE: 17212
X VALUE: 32768
evdev
提供与从设备接收到的轴值完全相同的值,未缩放。 input_absinfo
结构(python 中的 AbsInfo)提供边界信息,让您规范化操纵杆输入。
(('ABS_X', 0), AbsInfo(value=32768, min=0, max=65535, fuzz=0, flat=4095, resolution=0)),
假设您希望操纵杆的最小值为 -1,最大值为 +1,您可以使用 min
和 max
中的值标准化 ABS_X
AbsInfo
:
normalizedValue = 2.0 * (value - min) / (max - min) - 1.0
我是游戏控制器映射的新手,我正在尝试从操纵杆中理解 ABX_X 和 ABS_Y 值 return。我的目标是采用这些值并将它们变成“向前移动”、“向后移动”、“转向”等。我似乎无法弄清楚将进入的值转换为行动的公式是什么。下面是我的 ABSInfo 数据(来自 Python InputDevice)和一些示例值。任何引导我朝着正确方向前进的帮助都会非常有帮助。
ABS 信息功能
('EV_ABS', 3): [(('ABS_X', 0), AbsInfo(value=32768, min=0, max=65535, fuzz=0, flat=4095, resolution=0)), (('ABS_Y', 1), AbsInfo(value=32768, min=0, max=65535, fuzz=0, flat=4095, resolution=0))
Y 的样本值
Y VALUE: 3101
Y VALUE: 5241
Y VALUE: 6931
Y VALUE: 9597
Y VALUE: 12059
Y VALUE: 14990
Y VALUE: 17467
Y VALUE: 19878
Y VALUE: 32768
X 的示例值:
X VALUE: 23596
X VALUE: 14042
X VALUE: 0
X VALUE: 818
X VALUE: 5943
X VALUE: 17212
X VALUE: 32768
evdev
提供与从设备接收到的轴值完全相同的值,未缩放。 input_absinfo
结构(python 中的 AbsInfo)提供边界信息,让您规范化操纵杆输入。
(('ABS_X', 0), AbsInfo(value=32768, min=0, max=65535, fuzz=0, flat=4095, resolution=0)),
假设您希望操纵杆的最小值为 -1,最大值为 +1,您可以使用 min
和 max
中的值标准化 ABS_X
AbsInfo
:
normalizedValue = 2.0 * (value - min) / (max - min) - 1.0