我买了一个罗技游戏手柄 F310 来远程控制机器人。我在 Linux Mint(版本 18,Sarah)上使用 Pygame(版本 1.9.1,Python 版本 2.7.11+)。
作为检查操纵杆功能的简单测试,我编写了这个输出不同轴值的简短脚本:
import pygame
pygame.display.init()
pygame.joystick.init()
pygame.joystick.Joystick(0).init()
# Get the name of the joystick and print it
JoyName = pygame.joystick.Joystick(0).get_name()
print "Name of the joystick:"
print JoyName
# Get the number of axes
JoyAx = pygame.joystick.Joystick(0).get_numaxes()
print "Number of axis:"
print JoyAx
# Print the values for the axes
pygame.event.pump()
print pygame.joystick.Joystick(0).get_axis(0)
print pygame.joystick.Joystick(0).get_axis(1)
print pygame.joystick.Joystick(0).get_axis(2)
print pygame.joystick.Joystick(0).get_axis(3)
无论我运行脚本时轴的位置如何,我总是得到以下输出:
Name of the joystick:
Logitech Gamepad F310
Number of axis:
6
SDL_JoystickGetAxis value:0:
0.0
SDL_JoystickGetAxis value:0:
0.0
SDL_JoystickGetAxis value:0:
0.0
SDL_JoystickGetAxis value:0:
0.0
我知道输出“ SDL_joystick.Joystick(0).getAxis value ”是由于开发人员在编译源代码时保留了调试标志。但我不明白为什么脚本在所有轴值不在 0 位置时返回 0。
我已经用 jstest-gtk 包测试了操纵杆。使用这个包,它工作顺利。我的代码有错误吗?
我在windows中运行了代码,它运行得很顺利。知道为什么它在 Linux 发行版下不起作用吗?