В моей игре есть несколько спрайтов, которым нужны определенные части, чтобы иметь возможность менять цвет.
Мой процесс Я пытаюсь получить чистое белое изображение спрайта, прозрачное везде, где цвет не нуженбыть. Я перетаскиваю цветной квадрат поверх этого, а затем поверх основного спрайта, однако главный спрайт тогда меняет цвет везде, но при соблюдении прозрачности основного спрайта. Больше всего меня смущает то, что цветное изображение в маске выглядит правильно, когда я помещаю его на главный экран.
# Load main sprite and mask sprite
self.image = pygame.image.load("Enemy.png").convert_alpha()
self.mask = pygame.image.load("EnemyMask.png").convert_alpha()
# Create coloured image the size of the entire sprite
self.coloured_image = pygame.Surface([self.width, self.height])
self.coloured_image.fill(self.colour)
# Mask off the coloured image with the transparency of the masked image, this part works
self.masked = self.mask.copy()
self.masked.blit(self.coloured_image, (0, 0), None, pygame.BLEND_RGBA_MULT)
# Put the masked image on top of the main sprite
self.image.blit(self.masked, (0, 0), None, pygame.BLEND_MULT)
Enemy.png
EnemyMask.png (он белый, поэтому его не видно)
Маскированный цвет Маскированный цвет
Final Failed Sprite Failed Sprite
Не могу опубликовать изображения, недостаточно репутации
Я не получаю ошибки, но только белая часть щита должна быть зеленой