Python 3的Pygame Key Listener

时间:2016-04-26 22:20:34

标签: pygame

我希望能够通过键盘按下控制一些连接到我的覆盆子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',就好像我只是打字一样。我想要的就是能够通过按键执行功能。如果有不同的/更好的方法来做到这一点就没问题。

1 个答案:

答案 0 :(得分:0)

Pygame KEYDOWN事件正在活动窗口中寻找按键。

你必须创建一个窗口告诉Pygame从哪里读取事件。

另一个解决方案是从终端挂钩键盘事件,这样您就不必使用以下内容初始化或聚焦窗口:Python Key Binding或使用pyHook库进行全局键盘事件挂钩

P.S - 我意识到你自己解决了这个问题,我将其包括在内是为了完整。