当前位置:  开发笔记 > 编程语言 > 正文

Pygame程序挂在退出

如何解决《Pygame程序挂在退出》经验,为你挑选了2个好方法。

我现在正在修补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

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



1> Reshure..:

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

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

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

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



2> jfs..:

你在哪里退出外循环?

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

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有