为何运行Pygame代码时出现‘video system not initialized’错误?
错误原因分析与解决方法
核心问题
你的代码里犯了一个低级拼写错误:把类的构造函数__init__写成了__int__。
原理解释
Python规定,类的初始化方法必须命名为__init__,这是固定的魔术方法。你写成__int__后,这个方法不会被Python自动调用,导致pygame.init()和窗口创建代码完全没执行——Pygame的视频系统根本没初始化,当run()方法里调用pygame.event.get()时,就会触发video system not initialized错误。
修正后的代码
import pygame import sys class Game: def __init__(self): # 修正构造函数名称拼写 pygame.init() self.screen = pygame.display.set_mode((1280, 720)) self.clock = pygame.time.Clock() def run(self): while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() dt = self.clock.tick() / 1000 pygame.display.update() if __name__ == '__main__': game = Game() game.run()
内容的提问来源于stack exchange,提问作者DonTasior
相关产品推荐
相关产品推荐

