使用pygame加载图片失败、运行程序无窗口弹出问题求助
Pygame窗口无法弹出问题修复
你的代码存在3处直接导致运行异常的问题:
- 缩进逻辑错误:
if __name__ == "__main__"启动判断被错误缩进放在了game()函数内部,脚本运行时不会主动调用game()函数,程序启动后直接退出,自然不会弹出窗口 - 主循环缺少事件处理:Pygame运行时必须在主循环中持续消费系统事件队列,否则操作系统会判定程序无响应,即便窗口弹出也会直接卡死
- 资源路径存在转义隐患:Windows路径中的反斜杠
\在Python字符串中属于转义标识,直接书写路径可能出现转义错误,导致图片加载失败、程序崩溃
修正后的可运行代码如下:
import pygame def game(): pygame.init() size = (500, 500) screen = pygame.display.set_mode(size) pygame.display.set_caption("PygameDemo") # 填充背景色 screen.fill((78, 56, 78)) # 加载图片资源,路径加r前缀标记为原始字符串,避免转义问题 block = pygame.image.load(r"resources\pythonres.jpg").convert() screen.blit(block, (0, 0)) running = True while running: # 轮询处理系统事件 for event in pygame.event.get(): # 监听窗口关闭按钮点击事件,触发时退出主循环 if event.type == pygame.QUIT: running = False pygame.display.flip() # 退出Pygame释放资源 pygame.quit() # 启动判断放在全局作用域,取消原有错误缩进 if __name__ == "__main__": game()
运行前请确认脚本同级目录下存在
resources文件夹,且文件夹内包含pythonres.jpg图片文件,否则会触发资源加载错误。
内容的提问来源于stack exchange,提问作者Frj
相关产品推荐
相关产品推荐

