Pi 上的 Pygame 通过 Putty 运行,无屏幕,无输入

问题描述 投票:0回答:1

我正在尝试使用 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'
python python-2.7 pygame raspberry-pi
1个回答
1
投票

这听起来像你需要“无头”运行 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 的计算机。

如果这是您真正想要的,这里的方法可能很有用:通过 SSH 的 Pygame 不会注册击键 (Raspberry Pi 3)

© www.soinside.com 2019 - 2024. All rights reserved.