在pygame中加载透明背景精灵的问题

时间:2009-09-30 04:25:56

标签: python pygame

我正在尝试使用以下代码将透明图像加载到pygame中:

def load_image(name, colorkey=None):
    fullname = os.path.join('data', name)
    try:
        image = pygame.image.load(fullname)
    except pygame.error, message:
        print 'Cannot load image:', fullname
        raise SystemExit, message
    image = image.convert()
    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()

出于某种原因,每次加载图像时,背景会自动变为黑色?在这种情况下,我没有使用colorkey,因为我的图像最终会在它们周围形成一个白色边框,这一点非常明显,因为我的游戏背景在不断变化。

有什么想法吗?

谢谢,此致

1 个答案:

答案 0 :(得分:3)

您调用image.convert()。来自docs for Surface.convert

  

“转换后的Surface将没有   像素alphas。如果,他们将被剥夺   原来有他们。看到    Surface.convert_alpha - 更改   图像的像素格式,包括每个   像素alphas用于保存或   创建每像素alphas。“