运行pygame项目报错video system not initialized该怎么解决
pygame报错
video system not initialized修复方案 报错原文
第26行,pressed = pygame.key.get_pressed()
pygame.error: video system not initialized
根因定位
代码事件循环内的退出条件判断存在语法错误:
你写的if event.type == pygame.quit()中,pygame.quit()是主动销毁pygame运行环境的方法,代码执行到这行时会直接关闭视频系统,后续调用pygame.key.get_pressed()读取键盘状态时自然会触发系统未初始化的报错。
正确的退出事件常量是全大写的pygame.QUIT,属于pygame预设的事件类型枚举值,不需要加括号调用。
修复方案
仅需修改事件循环内的一行判断代码即可:
# 错误写法 if event.type == pygame.quit(): # 修正写法 if event.type == pygame.QUIT:
完整可运行代码
import pygame import sys from pygame.constants import K_DOWN, K_LEFT, K_RIGHT, K_UP pygame.init() screen = pygame.display.set_mode((600,600)) clock = pygame.time.Clock() BLACK = (0,0,0) MAGENTA = (255,0,255) x = 300 y = 300 width = 40 height = 40 go = True while go: for event in pygame.event.get(): if event.type == pygame.QUIT: go = False pressed = pygame.key.get_pressed() if pressed[K_UP]: y -= 3 if pressed[K_DOWN]: y += 3 if pressed[K_RIGHT]: x += 3 if pressed[K_LEFT]: x -= 3 screen.fill(BLACK) pygame.draw.rect(screen, MAGENTA, (x,y,width,height)) pygame.display.flip() clock.tick(60) pygame.quit() sys.exit()
内容的提问来源于stack exchange,提问作者legorack
相关产品推荐
相关产品推荐

