Pygame图片无法加载显示求助:无报错但图片不显示
问题原因及解决办法
你的代码存在两个关键问题导致图片无法显示:
未初始化Pygame核心模块
Pygame在使用前必须调用pygame.init()来初始化所有核心模块(如显示、图像加载等),否则部分功能可能无法正常工作,即使没有报错提示。未刷新显示缓冲区
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
相关产品推荐
相关产品推荐

