我正在使用精灵表格使用 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很新,所以请给我任何帮助你......谢谢。