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

1 投票
1 回答
587 浏览
提问于 2025-04-15 14:41

我正在尝试用以下代码在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()

但每次我加载这张图片时,背景都会自动变成黑色?我没有使用颜色键,因为我的图片周围会有一个白色的边框,这在我的游戏背景不断变化的情况下非常明显。

有没有什么想法?

谢谢,祝好

1 个回答

3

你调用了 image.convert()。在Surface.convert 的文档中提到:

“转换后的表面将没有像素透明度。如果原始图像有透明度,它们会被去掉。请查看 Surface.convert_alpha - 这个方法可以改变图像的像素格式,包括每个像素的透明度,以保留或创建每个像素的透明度。”

撰写回答