Python 3.9.6环境下pygame屏幕不显示颜色 运行仅黑屏如何解决
代码错误点
- 画面刷新方法
pygame.display.update()放在了主循环外部,仅会在退出窗口时执行一次,运行过程中所有绘制操作都不会同步到窗口,所以一直显示黑屏。 - 窗口初始化、标题、图标设置逻辑写在了
display()函数中,而该函数在主循环内每次迭代都会调用,相当于每次循环都重新创建窗口对象,属于多余错误操作,还会额外消耗性能。 screen被定义为display()内的局部变量,后续如果要在其他位置绘制内容无法访问该对象,且pygame.quit()执行后还会调用一次display(),会触发pygame未初始化的报错。
修正后可运行代码
import pygame pygame.init() # 初始化操作仅执行一次,放在主循环外 screen = pygame.display.set_mode((1000, 800)) pygame.display.set_caption("Typing Racer!") icon = pygame.image.load("exercise (1).png") pygame.display.set_icon(icon) running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False pygame.quit() # 直接跳出事件循环,避免后续绘制逻辑报错 break # 仅在运行状态下执行绘制和刷新 if running: screen.fill((92, 100, 150)) pygame.display.update()
内容的提问来源于stack exchange,提问作者Toby Host
相关产品推荐
相关产品推荐

