我正在尝试使用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)