问题描述
我不断收到此错误:“pygame.display.update() pygame.error: video system not initialized” 即使我初始化了所有 pygame 模块。有任何想法吗? 我使用的是最新版本的 pygame,python 3.8.5,我在 python shell 中运行程序,我的操作系统是 Windows。
import pygame,random
pygame.init()
win=pygame.display.set_mode((500,500))
clock=pygame.time.Clock()
loop=True
while loop:
clock.tick(25)
for event in pygame.event.get():
if event.type==pygame.MOUSEBUTTONDOWN:
if event.button==1:
pos=event.pos
pos=(round(pos[0]/SIDE),round(pos[1]/SIDE))
if event.type==pygame.QUIT:
loop=False
pygame.quit()
board.draw(win)
pygame.display.update()
解决方法
是否只有在退出程序时才会出现此错误?如果是,请将 pygame.quit()
移至文件的结尾。当您退出游戏时,您调用 pygame.quit()
,它会自动调用 pygame.display.quit()
,取消初始化视频 (pygame.display
) 系统。然后调用 pygame.display.update()
,这需要初始化视频系统。由于您已经取消初始化它,它会引发 video system not initialized
错误。
您的代码应如下所示:
while loop:
clock.tick(25)
for event in pygame.event.get():
if event.type==pygame.MOUSEBUTTONDOWN:
if event.button==1:
pos=event.pos
pos=(round(pos[0]/SIDE),round(pos[1]/SIDE))
if event.type==pygame.QUIT:
loop=False
board.draw(win)
pygame.display.update()
pygame.quit()