Если изображение является «маской», с прозрачным фоном и белой (255, 255, 255) маской, то вы можете легко «подкрасить» изображение.
Загрузить изображение:
image = pygame.image.load(imageName)
Создание однородного цветного изображения с альфа-каналом и одинаковым размером:
colorImage = pygame.Surface(image.get_size()).convert_alpha()
colorImage.fill(color)
Смешайте image
с maskImage
, используя фильтр BLEND_RGBA_MULT
:
image.blit(colorImage, (0,0), special_flags = pygame.BLEND_RGBA_MULT)
Класс спрайта может выглядеть так:
class MySprite(pygame.sprite.Sprite):
def __init__(self, imageName, color):
super().__init__()
self.image = pygame.image.load(imageName)
self.rect = self.image.get_rect()
colorImage = pygame.Surface(self.image.get_size()).convert_alpha()
colorImage.fill(color)
self.image.blit(colorImage, (0,0), special_flags = pygame.BLEND_RGBA_MULT)