4

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

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

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

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

当我尝试 pygame.image.get_extended 时,它返回 0,但从同一目录加载 .png 文件没有问题,所以我认为这不是导致此问题的原因。

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

文件夹结构:

脚本/GraphicsDriver.py

精灵/testtile.png

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

4

1 回答 1

3

有GraphicsDriver.py的目录中的sprites目录吗?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()

希望这会有所帮助。

于 2013-03-21T01:22:02.040 回答