Pygame程序挂在退出

Enr*_* Jr 10 python pygame

我现在正在修补pygame,当我试图关闭它时,似乎我用它制作的所有小程序都会挂起.

请使用以下代码,例如:

from pygame.locals import *
pygame.init()
# YEEAAH!
tile_file = "blue_tile.bmp"
SCREEN_SIZE = (640, 480)
SCREEN_DEPTH = 32

if __name__ == "__main__":
    screen = pygame.display.set_mode(SCREEN_SIZE, 0, SCREEN_DEPTH)
    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                break

    tile = pygame.image.load(tile_file).convert()
    colorkey = tile.get_at((0,0))
    tile.set_colorkey(colorkey, RLEACCEL)

    y = SCREEN_SIZE[1] / 2
    x = SCREEN_SIZE[0] / 2

    for _ in xrange(50):
        screen.blit(tile, (x,y))
        x -= 7
        y -= 14
Run Code Online (Sandbox Code Playgroud)

我没有看到代码有什么问题,它工作(忽略瓦片在正确的位置没有blit的事实),但是没有回溯,关闭它的唯一方法是在任务管理器中杀死python进程.任何人都可以发现我的代码有问题吗?

Res*_*ure 13

如果你从IDLE运行它,那么你缺少pygame.quit().

这是由IDLE python解释器引起的,它似乎以某种方式保留了引用.确保在退出应用程序或游戏时调用pygame.quit().

请参阅:在IDLE中为什么Pygame窗口没有正确关闭?

还有:Pygame文档 - pygame.quit()


jfs*_*jfs 12

你在哪里退出外循环?

 while True: # outer loop
     for event in pygame.event.get(): # inner loop
         if event.type == QUIT:
            break # <- break inner loop
Run Code Online (Sandbox Code Playgroud)