pygame程序运行后窗口冻结

时间:2017-12-16 18:39:52

标签: python pygame python-3.6

我正在学习pygame,并且一直致力于“Python速成课程”中提供的示例' Eric Matthews的书(https://g.co/kgs/WP5fay)。我在macOS High Sierra上安装了pygame 1.9.3版。

当我运行以下程序时,会打开一个窗口,当我点击' X'关闭它,窗口冻结,诅咒继续盘旋,我得到一个python没有响应活动监视器中的错误。我已经尝试了一些选项来解决这个问题,但它并没有消失。

import pygame
import sys
def run_game():
    pygame.init()
    screen = pygame.display.set_mode((400, 300))
    pygame.display.set_caption('Alien Invasion')
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
        pygame.display.flip()

run_game() #when I run this function, a window opens and freezes a couple of seconds after

1 个答案:

答案 0 :(得分:0)

您必须终止应用程序循环并使用 pygame.quit() 取消初始化所有 pygame 模块:

def run_game():
    pygame.init()
    screen = pygame.display.set_mode((400, 300))
    pygame.display.set_caption('Alien Invasion')

    run = True
    while run:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
        pygame.display.flip()
 
    pygame.quit()
    sys.exit()