pygame.error:视频系统未初始化pygame.init()已被调用

时间:2019-09-29 03:52:07

标签: python pygame

为什么会出现此错误?我不明白,谁能告诉我为什么会出现该错误以及如何纠正它? enter image description here

1 个答案:

答案 0 :(得分:0)

对于事件队列中的每个事件,调用pygame.quit(),这将取消所有pygame模块的初始化:

  

pygame.quit()

     

取消初始化所有pygame模块

     

quit() -> None

     

取消初始化所有先前已初始化的pygame模块。当Python解释器关闭时,无论如何都会调用此方法,因此您的程序不需要它,除非它想要终止pygame资源并继续执行。多次调用此函数是安全的,因为重复调用无效。

     

注意    调用pygame.quit()取消初始化所有pygame模块不会退出程序。考虑让您的程序以与普通Python程序相同的方式结束。

因此,在while循环的下一个迭代中,由于视频系统不再初始化,因此对pygame.event.get()的调用将失败。

您应该对照type常量检查event对象的pygame.QUIT属性,而不要调用pygame.quit()函数:

...
if event.type == pygame.QUIT:
    ...

通常不需要打{{1​​}}。