python - 为什么我会收到错误: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()
该错误不会使窗口或任何东西崩溃,它可以按预期工作,只是有点烦人。
解决方案
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 已退出,这就是您收到消息的原因。
把逻辑分开。一个函数或方法中的事件,在另一个函数或方法中更新,在另一个函数或方法中绘制和更新显示以避免这种情况。
推荐阅读
- jenkins - 在詹金斯作业中执行 groovy 脚本
- amazon-dynamodb - dynamo db FilterExpression,使用值作为键在 json 对象中查找
- python - 刷新数据写入数字文件句柄?
- javascript - 如何将缓动放入滚动绑定功能?
- python - 如何在熊猫中转播数据框
- c# - AngularJS Post to C# Function 因大字符串而失败(立即出现错误 500)
- angular - Angular:检查 Observable 的响应类型
- django - 在 django 视图中访问表单元素
- angular - Firebase 动态链接仅在 iOS 中的移动 Safari 和 Chrome 上修改重定向 url。我使用角形辅助插座
- mongodb - 连接到 mongodb 服务器时出现以下错误