You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:42:02