Pygame程序背景色仅关闭应用图标时可见,求解决方法
问题解决方案:Pygame窗口无法实时显示背景色
问题根源
你的代码里,player()和pygame.display.update()这两个关键语句放在了主循环(while running)的外面。主循环运行时,虽然执行了screen.fill()填充背景,但没有把填充后的画面刷新到窗口上。只有当你关闭窗口、循环结束后,这两个语句才会执行,所以此时才能看到背景色。
修正后的代码
import pygame # 初始化Pygame pygame.init() # 设置窗口标题和图标 pygame.display.set_caption("Space Invaders") # 注意:需要传入实际的图片路径,比如"icon.png" icon = pygame.image.load("icon.png") pygame.display.set_icon(icon) # 玩家设置 # 注意:需要传入实际的玩家图片路径,比如"player.png" playerIMG = pygame.image.load("player.png") playerX = 370 playerY = 30 # 创建窗口 screen = pygame.display.set_mode((1200, 600)) def player(): screen.blit(playerIMG, (playerX, playerY)) running = True while running: # 填充背景色 screen.fill((222, 222, 222)) # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 绘制玩家 player() # 刷新显示 pygame.display.update()
关键修正点
- 将
player()和pygame.display.update()移到while循环内部,确保每次循环都会重新绘制玩家并刷新窗口,这样背景色和玩家就能实时显示。 - 补充
pygame.image.load()的图片路径参数,否则程序会抛出错误,替换成你实际的图标和玩家图片路径即可。
内容的提问来源于stack exchange,提问作者Many Dog
相关产品推荐
相关产品推荐

