为什么我没有初始化"视频系统"我的代码错误?

时间:2015-11-17 09:58:24

标签: pygame python-3.5

我是使用pygame的新手。 当我运行以下代码并尝试关闭pygame窗口时,我收到错误:

  

" pygame.display.flip()   pygame.error:视频系统未初始化"

这是我的代码:

import pygame
import random
import sys

class main:
    def __init__(self, height = 600, width = 800):
        pygame.init()
        self.screen = pygame.display.set_mode((width, height))
        self.screen.fill((0, 255, 255))
        try:
            while True:
                for event in pygame.event.get():
                    if event.type == pygame.QUIT:
                        pygame.quit()
                    pygame.display.flip()
        finally:
            pass

if __name__ == '__main__':
    window = main()

1 个答案:

答案 0 :(得分:0)

作为Ignacio already hinted,如果您关闭游戏,您将在循环中读取pygame.QUIT的事件,但您误解了pygame.quit()它不会离开循环的效果,因此下一行pygame.display.flip()被调用,好像游戏仍然在运行。

应该关心离开循环。也许通过将while True:替换为while playing:之类的内容,您可以在获得playing事件后将False设置为pygame.QUIT