使用pygame用keypress结束循环

时间:2014-08-12 11:27:28

标签: python loops pygame keydown

我在Ubuntu上使用PyGame,我想制作一个while循环,当用户按下键盘上的任何按钮时结束。

此代码不会离开循环,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 个答案:

答案 0 :(得分:1)

你需要

根据game programming wiki:   如果您没有设置pygame显示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"