Python 3.x &引用;“视频系统未初始化”;关闭pygame窗口时

Python 3.x &引用;“视频系统未初始化”;关闭pygame窗口时,python-3.x,pygame,Python 3.x,Pygame,我有两个类似的代码片段。两者都运行良好,但其中一个在我关闭pygame窗口时显示错误 Traceback (most recent call last): File "/home/nabeel/Devalopment/Python/aaa.py", line 92, in <module> pygame.display.flip() pygame.error: video system not initialized 这里有一个没有 import pygame don

我有两个类似的代码片段。两者都运行良好,但其中一个在我关闭pygame窗口时显示错误

Traceback (most recent call last):
  File "/home/nabeel/Devalopment/Python/aaa.py", line 92, in <module>
    pygame.display.flip()
pygame.error: video system not initialized
这里有一个没有

import pygame

done = False
pygame.init()

screen_size = [320,240]

white = [255,255,255]
black = [0,0,0]

paddle_x = 0
paddle_y = 0
vel_x = 0
vel_y = 0

gutter = 10

screen = pygame.display.set_mode(screen_size)
pygame.display.set_caption("mygame")



while not done:

    screen.fill(black)


    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True

        if event.type == pygame.KEYDOWN:
            if pygame.key.get_pressed()[pygame.K_DOWN]:
                vel_y += 2
            if pygame.key.get_pressed()[pygame.K_UP]:    
                vel_y -= 2
            if pygame.key.get_pressed()[pygame.K_LEFT]:
                vel_x -= 2
            if pygame.key.get_pressed()[pygame.K_RIGHT]:    
                vel_x += 2

    paddle_x += vel_x
    paddle_y += vel_y    


    pygame.draw.line(screen,white,(gutter,0),(gutter,screen_size[1]))
    pygame.draw.line(screen,white,(screen_size[0]-gutter,0),(screen_size[0]-gutter,screen_size[1]))
    pygame.draw.rect(screen,white,[screen_size[0]/2,screen_size[1]/2,10,10],0)
    pygame.draw.line(screen,white,[paddle_x+5,paddle_y],[paddle_x+5,paddle_y+30],gutter)
    pygame.display.flip()




pygame.quit()

虽然这两个没有做任何事情,但我只是好奇是什么导致了这一切

尝试删除此块中的pygame.quit():

 if event.type == pygame.QUIT:
    done = True
    pygame.quit()
其思想是,当调用
pygame.quit()
时,整个模块都未初始化,因此如果找到更多的模块方法调用(如
pygame.display.flip()
),它们将抛出一个错误:)

如果您希望在上述条件If语句中保留pygame.quit()方法调用,您可以做的是导入
sys
模块,并在
pygame.quit()下添加
sys.exit()

这两种方法都应该很有效:) 希望有帮助


干杯!Alex

尝试删除此块中的pygame.quit():

 if event.type == pygame.QUIT:
    done = True
    pygame.quit()
其思想是,当调用
pygame.quit()
时,整个模块都未初始化,因此如果找到更多的模块方法调用(如
pygame.display.flip()
),它们将抛出一个错误:)

如果您希望在上述条件If语句中保留pygame.quit()方法调用,您可以做的是导入
sys
模块,并在
pygame.quit()下添加
sys.exit()

这两种方法都应该很有效:) 希望有帮助


干杯!Alex

尝试删除此块中的pygame.quit():

 if event.type == pygame.QUIT:
    done = True
    pygame.quit()
其思想是,当调用
pygame.quit()
时,整个模块都未初始化,因此如果找到更多的模块方法调用(如
pygame.display.flip()
),它们将抛出一个错误:)

如果您希望在上述条件If语句中保留pygame.quit()方法调用,您可以做的是导入
sys
模块,并在
pygame.quit()下添加
sys.exit()

这两种方法都应该很有效:) 希望有帮助


干杯!Alex

尝试删除此块中的pygame.quit():

 if event.type == pygame.QUIT:
    done = True
    pygame.quit()
其思想是,当调用
pygame.quit()
时,整个模块都未初始化,因此如果找到更多的模块方法调用(如
pygame.display.flip()
),它们将抛出一个错误:)

如果您希望在上述条件If语句中保留pygame.quit()方法调用,您可以做的是导入
sys
模块,并在
pygame.quit()下添加
sys.exit()

这两种方法都应该很有效:) 希望有帮助


干杯!Alex

另一种可能是将游戏循环放入函数中,然后调用return right pygame.quit()退出该函数。另一种可能是将游戏循环放入函数中,然后调用return right pygame.quit()退出函数。另一种可能是将游戏循环放入函数,然后调用return right pygame.quit()退出函数。另一种可能是将游戏循环放入函数,然后调用return right pygame.quit()退出函数。