我正在尝试使用Pygame和Python 2.7控制连接到Raspberry Pi的Roomba。我通过Putty连接到Pi,并通过Putty控制台对其进行控制。我遇到的问题是我无法显示Pygame显示屏,并且Pygame键盘输入仅在Pygame屏幕具有焦点时才起作用。运行代码时,没有打开任何窗口,而Putty的控制台就坐在那里。有没有办法以这种方式打开Pygame窗口?

我有不使用Pygame的工作代码,但是它使用getch作为输入,因此您只能在输入字符之间切换运动,而在停止按住键时无法停止运动。

这是我的基本代码,当我按下一个键时,我只是想让Pygame做任何事情:

import pygame, sys
from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((600, 400))
pygame.display.flip()

while 1:
key=pygame.key.get_pressed()
if key[pygame.K_w]:print'w'

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        sys.exit()
    elif event.type == KEYDOWN and event.key == K_ESCAPE:
        sys.exit()
    elif event.type == KEYDOWN and event.key == K_s:
        print's'

最佳答案

听起来您需要“无头”运行Pygame:

http://pygame.org/wiki/HeadlessNoWindowsNeeded

import os
import pygame.display

os.environ["SDL_VIDEODRIVER"] = "dummy" # or maybe 'fbcon'
pygame.display.init()
screen = pygame.display.set_mode((1,1))


这个答案可能也很有用:Pygame headless setup

请注意,这些要求将键盘直接连接到Raspberry Pi本身,而不是直接从中运行PuTTY的计算机。

如果这是您真正想要的,则此处的方法可能会很有用:Pygame through SSH does not register keystrokes (Raspberry Pi 3)

07-24 09:45
查看更多