使用pygame通过按键结束循环

2 投票
1 回答
1373 浏览
提问于 2025-04-18 16:58

我在Ubuntu上使用PyGame,想要做一个循环,这个循环会在用户按下键盘上的任何一个按键时结束。

我写的代码没有退出循环,Eclipse也没有报错或警告,但就是一直停留在循环里。到底出了什么问题呢?

import time
import pygame
pygame.init()

test = False

while not test:
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            print "gotcha"
            test = True;
            break;

    print "Still looping"
    time.sleep(1);



print "made it out of the loop" ;

理想情况下,每秒钟应该在屏幕上打印一次“还在循环中”,直到我按下任意键,这时应该打印“成功跳出循环”。

但是实际上并没有这样,循环一直持续下去(直到我手动终止脚本)。

1 个回答

3

你需要这样做:

根据游戏编程维基的说法:如果你没有设置pygame的显示屏幕,pygame就无法处理任何输入事件。

import time

import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption('Pygame Caption')

test = False

while not test:
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            print "gotcha"
            test = True
            break

    print "Still looping"
    time.sleep(1)

print "made it out of the loop" 

撰写回答