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

Pygame图片无法加载显示求助:无报错但图片不显示

问题原因及解决办法

你的代码存在两个关键问题导致图片无法显示:

  1. 未初始化Pygame核心模块
    Pygame在使用前必须调用pygame.init()来初始化所有核心模块(如显示、图像加载等),否则部分功能可能无法正常工作,即使没有报错提示。

  2. 未刷新显示缓冲区
    Pygame采用双缓冲机制,你在update_display中完成的绘制操作都在后台缓冲区,必须调用刷新函数才能将内容同步到屏幕上。

修改后的代码

import pygame


class Game:

    resolutions = [(640,360),(800,450),(1000,565)]

    def set_resolution(self,res):
        self.current_res = Game.resolutions[res]
    
    def __init__(self):
        pygame.init()  # 新增:初始化Pygame核心模块
        self.run = True
        self.clock = pygame.time.Clock()
        
        self.set_resolution(0)
        self.fps = 60
        self.display = pygame.display.set_mode((self.current_res),pygame.NOFRAME)
        self.img = pygame.image.load('test_img.png').convert_alpha()

    def update_display(self):
        self.display.fill('black')
        self.display.blit(self.img,(0,0))
        pygame.display.flip()  # 新增:刷新整个显示屏幕


    def gameloop(self):
        
        while self.run:
            
            self.clock.tick(self.fps)
            
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    self.run = False
                    
                    
            self.update_display()
        
        pygame.quit()


if __name__ == '__main__':
    g = Game()
    g.gameloop()

额外排查点

  • 确认test_img.png文件和脚本在同一目录下,或者使用绝对路径加载图片(比如pygame.image.load('/path/to/test_img.png'))
  • 如果图片尺寸远大于窗口,可能会超出显示范围导致看不到图片,可以先缩小图片测试:self.img = pygame.transform.scale(self.img, (100, 100))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:06:38