我现在正在修补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进程.任何人都可以发现我的代码有问题吗?
如果你从IDLE运行它,那么你缺少pygame.quit().
这是由IDLE python解释器引起的,它似乎以某种方式保留了引用.确保在退出应用程序或游戏时调用pygame.quit().
请参阅:在IDLE中为什么Pygame窗口没有正确关闭?
还有:Pygame文档 - pygame.quit()
你在哪里退出外循环?
while True: # outer loop for event in pygame.event.get(): # inner loop if event.type == QUIT: break # <- break inner loop