使用pygame.image.load()时出错

时间:2013-03-21 01:11:28

标签: python pygame pycharm

当我尝试在另一个文件夹中加载图像时,我得到了......

pygame.error:无法打开sprites / testtile.png

如果它们位于同一目录中,我可以加载.png文件,但是一旦它们在另一个文件夹中,我就会收到此错误。

我知道python也可以访问其他文件夹,因为我没有从折叠中导入.py文件时出错。

当我尝试pygame.image.get_extended它返回0,但是从同一目录加载.png文件没有给我带来任何问题,所以我不认为这是造成这个问题的原因。

顺便说一句,我正在运行PyCharm,这样的事情似乎总是给我带来这个IDE的麻烦。我甚至认为这不是一个pygame问题。不知道此时该做什么。

文件夹结构:

脚本/ GraphicsDriver.py

精灵/ testtile.png

驱动程序正在尝试访问testile.png文件

1 个答案:

答案 0 :(得分:3)

带有GraphicsDriver.py的目录中的sprite目录?您可以使用PyGame图像加载器遇到一些问题。它在PyGame初始化的同一目录中查找文件。使用'os.path.join'将其指向文件的绝对路径。

我经常在它周围编写我自己的小图像加载器,因为它为这个过程提供了更多的灵活性。像这样会返回图像的东西:

def load_image(name, colorkey = None):
    """loads an image and converts it to pixels. raises an exception if image not found"""
    fullname = os.path.join('data', name)
    try:
        image = pygame.image.load(fullname)
    except pygame.error, message:
        print 'Cannot load image:', name
        raise SystemExit, message
    image = image.convert()
    # set the colorkey to be the color of the top left pixel
    if colorkey is not None:
        if colorkey is -1:
            colorkey = image.get_at((0,0))
        image.set_colorkey(colorkey, RLEACCEL)
    return image, image.get_rect()

希望这会有所帮助。