我在试着做一个树莓派控制的机器人.特别是,我想使用游戏手柄来导航机器人.我在桌面计算机上编写了以下代码来捕获游戏手柄的输入:
import pygame
pygame.init()
joystick = pygame.joystick.Joystick(0)
joystick.init()
done = False
while not done:
event = pygame.event.poll()
if event.type == 1538:
print(event.dict['value'])
if event.type == 1540:
done = True
如果按下导航十字上的按钮,则此代码打印值(例如(1,0)),如果按下另一个按钮,则终止.
当我在raspberry pi上运行这段代码时,我得到了以下错误:
pygame.error: video system not initialized
个
我想问题是,我在命令行上运行代码,而pygame希望有一个视频输出窗口.但我不想有输出,我只想使用pygame读取输入.有没有一种方法可以配置pygame来做到这一点?
UPDATE个
看来pygame不能达到我想要的目标(见rabbid76的回答).在我寻找替代品的过程中,我找到了模块inputs.下面的代码在raspberry pi zero上工作,可以用来读取输入:
from inputs import get_gamepad
done = False
while not done:
events = get_gamepad()
for event in events:
print(event.code)
print(event.state)
print(event.ev_type)
我建议您自己运行代码并判断输出.输出值在我的台式计算机和raspberry pi zero上是不同的,所以你可能需要找到适合你的特定情况的正确代码.