Pygame窗口在While循环存在时仍闪退且未执行填充的问题求助
解决Pygame窗口一闪而过且颜色不生效的问题
我来帮你排查下问题所在,你的代码踩了两个常见的小坑,导致窗口瞬间关闭且颜色没显示出来:
1. window.fill()的参数格式错误
Pygame的fill()方法要求传入RGB颜色元组,但你写的是三个单独的数值:
window.fill(255,255,200) # 错误写法
这种写法会触发TypeError,直接终止while循环,程序立刻执行pygame.quit(),所以窗口刚打开就关闭了。正确写法是把颜色值打包成一个元组:
window.fill( (255, 255, 200) ) # 正确写法
2. 缺少屏幕刷新操作
就算修正了fill的参数,你也没告诉Pygame把绘制的内容更新到窗口上。需要在while循环的末尾添加屏幕刷新的代码,要么用pygame.display.flip()(刷新整个窗口),要么用pygame.display.update()(刷新指定区域,这里用flip更简单)。
修正后的完整代码
import pygame pygame.init() (width, height) = (300, 300) window = pygame.display.set_mode((width, height)) run = True while run: window.fill( (255, 255, 200) ) # 修正颜色参数格式 for event in pygame.event.get(): if event.type == pygame.QUIT: run = False pygame.display.flip() # 添加屏幕刷新 pygame.quit()
运行这段代码后,窗口会正常显示浅黄底色,点击关闭按钮才会退出。
内容的提问来源于stack exchange,提问作者hazm4t
相关产品推荐
相关产品推荐

