【问题标题】:Loading images in pygame causes "pygame.error"在 pygame 中加载图像会导致“pygame.error”
【发布时间】:2012-03-09 08:26:54
【问题描述】:

每当我尝试运行我试图加载一些图像的 pygame 程序时,我总是得到简单的“pygame.error”,没有别的。

我已经导入了 pygame 和 pygame.locals。起初我以为是因为它找不到我的文件,但是每当我将文件名更改为不正确的文件时,它都会显示“无法打开图像”,所以我猜它确实找到了文件,但在尝试加载时失败了. startup() 函数是从 main 运行的第一件事。而且我还尝试使用与python文件位于同一目录中的grass.png文件做一个简单的grass=pygame.image.load('grass.png')

感谢我能得到的所有帮助

..... 第 41 行,在启动中 环境字典 = {'gräs': pygame.image.load(os.path.join('images', 'grass.png')).convert_alpha(), pygame.error

def startup():
    pygame.init()
    p1=Player.Player(int(random.random()*mapstorlek),int(random.random()*mapstorlek))
    vh=ViewHandler.ViewHandler()
    surroundingssdict = {'grass': pygame.image.load(os.path.join('images','grass.png')).convert(),
          'mount': pygame.image.load(os.path.join('images', 'mount.png').convert)()}
    playerdict={'p1': pygame.image.load(os.path.join('images','player.png')).convert()}

【问题讨论】:

  • 好吧,首先我很确定 "'mount' 中的括号有些奇怪: pygame.image.load(os.path.join('images', 'mount.png' ).convert)()}"(查看 .convert)() 部分)

标签: python pygame


【解决方案1】:

pygame.error 通常会附带一条消息,其中包含有关问题的更多详细信息,例如当您尝试使用不存在的图像时出现的“无法打开图像”。你确定你没有得到更多信息吗?不能确定出了什么问题,但我会抛出两个建议:

您是否在加载图像之前调用pygame.display.set_mode 设置显示表面?您可能在 ViewHandler 类中这样做,但如果不是,convert() 将失败,因为它会更改表面的像素格式以匹配显示,如果没有显示活动,它当然不能这样做。

另一种可能是您在 pygame 中没有完整的图像支持并且无法加载 .png。您是否尝试过加载其他格式?尝试调用pygame.image.get_extended() 以查看您的 pygame 是否使用扩展图像支持构建。即使它返回 True 也不能保证您可以加载 .png,但至少它更有可能是其他东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 2020-06-04
    相关资源
    最近更新 更多