gpt4 book ai didi

python - Pygame Joystick.get_axis() 总是返回零

转载 作者:行者123 更新时间:2023-11-28 19:11:17 28 4
gpt4 key购买 nike

我买了一个 Logitech Gamepad 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 发行版下不起作用吗?

最佳答案

从对问题的编辑中提取。

在初始代码(未在上面发布)中,我有一个 while 循环,但我犯了一个新手错误,将 pygame.event.pump() 行放在 while 循环之外。我现在必须学习如何使用此模块的代码完美无缺。

import pygame

pygame.display.init()
pygame.joystick.init()
pygame.joystick.Joystick(0).init()

# Prints the joystick's name
JoyName = pygame.joystick.Joystick(0).get_name()
print "Name of the joystick:"
print JoyName
# Gets the number of axes
JoyAx = pygame.joystick.Joystick(0).get_numaxes()
print "Number of axis:"
print JoyAx

# Prints the values for axis0
while True:
pygame.event.pump()
print pygame.joystick.Joystick(0).get_axis(0)

我确实不得不花一些时间来调整和重新编译 joystick.c 源代码以摆脱“SDL_joystick.Joystick(0).getAxis value:0:”打印输出。显然,这个问题已经存在多年,但尚未针对 Ubuntu/Mint 解决。

关于python - Pygame Joystick.get_axis() 总是返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39817549/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com