我希望能够通过键盘按下控制一些连接到我的覆盆子pi的电机。我有一些代码可以将电机向一个方向旋转5秒钟,然后将另一个方向旋转5秒钟再关闭电机。我想使用pygame的键监听功能通过键盘按下来控制电机。我使用以下内容作为键盘按键方面的测试。
import pygame
pygame.init()
pygame.key.set_repeat(100, 100)
while 1:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_w:
print 'go forward'
if event.key == pygame.K_s:
print 'go backward'
if event.type == pygame.KEYUP:
print 'stop'
当我运行这个脚本时,我没有收到任何错误,所以我知道它运行了。但是,当我按下'w'或's'键时,显示的是'w'或's',就好像我只是打字一样。我想要的就是能够通过按键执行功能。如果有不同的/更好的方法来做到这一点就没问题。
答案 0 :(得分:0)
Pygame KEYDOWN事件正在活动窗口中寻找按键。
你必须创建一个窗口告诉Pygame从哪里读取事件。
另一个解决方案是从终端挂钩键盘事件,这样您就不必使用以下内容初始化或聚焦窗口:Python Key Binding或使用pyHook库进行全局键盘事件挂钩
P.S - 我意识到你自己解决了这个问题,我将其包括在内是为了完整。