首页 > 解决方案 > 为什么我会收到错误:pygame.error: video system not initialized

问题描述

就像标题说的我很困惑为什么会收到错误:pygame.error: video system not initialized

据我了解,如果您忘记使用 pygame.init() 初始化代码,则会引发此错误,但我做到了,这是我的代码,提前致谢:

import pygame
from pygame.locals import *

pygame.init()

screen_height = 700
screen_width = 1000

screen = pygame.display.set_mode((screen_width,screen_height))
pygame.display.set_caption("platformer")

# load images
sun_img = pygame.image.load("img/sun.png")
backround_img = pygame.image.load("img/sky.png")


run = True
while run:

    screen.blit (backround_img,(0,0))
    screen.blit(sun_img, (100, 50))

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
            pygame.quit()

    pygame.display.update()

该错误不会使窗口或任何东西崩溃,它可以按预期工作,只是有点烦人。

标签: pythonpygame

解决方案


   for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
            pygame.quit()

    pygame.display.update()

当事件循环发生时,如果你关闭窗口,你调用 pygame.quit(),它会退出 pygame。然后它尝试做:

pygame.display.update()

但是 pygame 已退出,这就是您收到消息的原因。

把逻辑分开。一个函数或方法中的事件,在另一个函数或方法中更新,在另一个函数或方法中绘制和更新显示以避免这种情况。


推荐阅读