使用pygame通过按键结束循环
我在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"