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

Pygame窗口打开后立即关闭问题求助(《Python Crash Course》项目)

解决Pygame窗口闪闭问题(Ship类相关)
  • 检查图片加载的异常情况:
    在Ship类的__init__方法里,给图片加载代码加上异常捕获,确认是否真的成功读取图片——有时候看似正确的路径,可能因为工作目录、文件名大小写问题导致加载失败,而未捕获的异常会直接终止程序:

    try:
        self.image = pygame.image.load('ship.bmp')
    except pygame.error as e:
        print(f"图片加载失败: {e}")
        pygame.quit()
        exit()
    
  • 核对blitme()的坐标逻辑:
    确认self.rect的初始位置赋值是否正确,比如是否基于屏幕的rect对象设置:

    self.screen_rect = self.screen.get_rect()
    self.rect.midbottom = self.screen_rect.midbottom
    

    如果self.screen_rect未正确初始化,或者坐标赋值错误,可能在渲染时触发隐性错误导致窗口关闭。

  • 验证图片本身的有效性:
    替换成一张确定可用的简单图片(比如100×100的纯色BMP)测试,排除原图片损坏、尺寸异常等问题——即使转了格式,损坏的文件也会导致Pygame渲染失败。

  • 排查Ship类的其他逻辑:
    检查Ship类中是否有不小心调用pygame.quit()、sys.exit()这类终止程序的代码,或者在方法中修改了主循环的运行条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:42:02