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

Pygame窗口可正常弹出但fill改背景、绘制图形无效应如何解决

问题原因
  • 缩进错误导致刷新代码永不执行:你代码中的pygame.display.flip()、clock.tick(60)两行位于while True无限循环的外部,程序进入循环后永远不会运行到这两行代码,你填充背景、绘制图形的操作全部只停留在显存缓冲区,从未更新到实际显示窗口,因此窗口始终是初始黑屏。
  • 线条颜色与背景色重合:你调用pygame.draw.line()时使用的绘制颜色为GREEN,和screen.fill(GREEN)设置的背景色完全一致,即使刷新逻辑正常,你也看不到绘制的线条。
修复后的代码
import pygame,sys

#setup
pygame.init()
clock=pygame.time.Clock()

#colors
BLACK =(  0,  0,  0)
WHITE =(255,255,255)
GREEN =(  0,255,  0)
RED   =(255,  0,  0)
BLUE  =(  0,  0,255)
#screen
screen_width=1200
screen_height=700 # 顺带修正了原变量名的拼写错误,不影响运行
screen=pygame.display.set_mode((screen_width,screen_height))
pygame.display.set_caption ("test_game")


while True:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            pygame.quit()
            sys.exit()          
    screen.fill(GREEN)
    pygame.draw.line(screen,RED,[0,100],[100,100],5) # 线条颜色改为红色,和背景区分
    pygame.display.flip() # 修正缩进,放入循环内
    clock.tick(60) # 修正缩进,放入循环内
验证说明

修复后运行脚本,窗口会正常显示绿色背景,同时顶部会出现一条红色的水平线段,功能完全正常。

内容的提问来源于stack exchange,提问作者moroc333

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:27:03