Pygame错误帮助Pygame.Error:视频系统未初始化

2024-05-12 22:28:32 发布

您现在位置:Python中文网/ 问答频道 /正文

def eventLoop():
pygame.display.update()
for event in pygame.event.get():
    if event.type == QUIT:
        pygame.quit()
        sys.exit

运行游戏(调用eventLoop()函数)时,出现以下错误:

File "C:\Users\Slav\Desktop\project\test.py", line 342, in eventLoop
pygame.display.update()
pygame.error: video system not initialized

Pygame在此函数中初始化(在定义eventLoop()之前):

def initialise(window_width, window_height, window_name, window_colour):
    pygame.init()
    screen = pygame.display.set_mode((window_width, window_height), 0, 32)
    pygame.display.set_caption(window_name)
    screen.fill(window_colour)
    return screen

此处调用初始化函数:

if show_generation:
    screen = initialise(width, height, "Maze Generator", BLACK)
maze = generate_maze(show_generation, gen_choice)

if show_solving and not show_generation:
    screen = initialise(width, height, "Maze Generator", BLACK)
visited, num_items = solve_maze(sol_choice)

显示生成/显示解算是一个变量,取自应用程序中的2个复选框,无论用户是否只想显示迷宫生成和/或迷宫解算

当用户选择显示和求解生成的迷宫(就在我的代码末尾)时,将调用eventLoop()函数

if show_generation or show_solving:
     while True:
         eventLoop()

完全错误:

x_cells: 2 
y_cells: 2 
show_generation:  True 
show_solving: True 
save_image: True
Running Kruskal�s algorithm
Running depth first search

Traceback (most recent call last):
File "C:\Users\Ray\Desktop\project\pygame.py", line 701, in <module>
eventLoop()
File "C:\Users\Ray\Desktop\project\pygame.py", line 342, in eventLoop
pygame.display.update()
pygame.error: video system not initialized
[Finished in 4.783s]

Tags: 函数ineventtrueifshowdisplayeventloop
1条回答
网友
1楼 · 发布于 2024-05-12 22:28:32

错误出现在eventLoop()

def eventLoop():
pygame.display.update()
for event in pygame.event.get():
    if event.type == QUIT:
        pygame.quit()
        sys.exit

而不是ifif event.type == QUIT:,它应该是if event.type == pygame.QUIT: 它也应该是sys.exit()而不是sys.exit

因此eventLoop()应该如下所示:

def eventLoop():
pygame.display.update()
for event in pygame.event.get():
    if event.type == pygame.QUIT:
        pygame.quit()
        sys.exit() 

相关问题 更多 >