PyGame:Sprite表中不一致的不透明度

时间:2014-07-20 01:58:15

标签: python pygame 2d opacity sprite-sheet

我正在使用精灵表格使用 Python 3.3 PyGame 1.9.1 制作游戏。
使用我的精灵,我在黑色轮廓上使用了很多阴影和渐变 - 使其看起来更清晰。

问题是...... 我不知道在不损失透明度的情况下切割精灵片的正确方法。

以下是我的几个图像功能:

def load_image(file):
file = os.path.join(main_dir, 'data', file)
return pygame.image.load(file).convert_alpha()

这个(上面)加载来自我的“数据”文件夹的图像注意:它确实将convert_alpha应用于图像。

def image_at(sheet, rectangle, colorkey = None, coords = (0,0)):
rect = pygame.Rect(rectangle)
image = pygame.Surface(rect.size).convert()
image.blit(sheet, (0, 0), rect)
if colorkey is not None:
    if colorkey is -1:
        colorkey = image.get_at(coords)
    image.set_colorkey(colorkey, pygame.RLEACCEL)
return image

这个切出一块图像(或表面)。 注意:变量“sheet”指的是图像。

这些几个功能完全正常,而colorkey确实有效地消除了背景......但不透明度仍然丢失 在行动中,这些功能看起来像:

img = load_image('SpriteSheet000.png')
Player.images = [image_at(img, (0,0,32,32), -1, (0,0),
                 image_at(img, (32,0,32,32), -1, (20,0))

关于“image_at”函数的更多信息:矩形参数是要剪切的图像的一部分; colorkey参数将为None,(r,g,b)或-1; coords参数仅在colorkey设置为-1时才有效,并且它会选择图像上的一个像素作为颜色键颜色。

我对PyGame很新,所以请给我任何帮助你......谢谢。

0 个答案:

没有答案