在 pygame 中反转蒙版的颜色?

问题描述 投票:0回答:1

我有一个文本表面的pygame蒙版,我想反转它,即黑色变成白色,白色变成黑色。黑色是文本的透明部分,白色是不透明部分,但我希望将其翻转,以便我可以制作文本轮廓。我实在想不通。如果有人知道,将不胜感激

我将附上生成和位图掩码的代码:)

        location_text = self.font.render(self.location, True, self.text_color)
        pos = ((screen_width - location_text.get_width()) / 2, 320)        

        mask = pygame.mask.from_surface(location_text)
        mask_surf = mask.to_surface()
        mask_surf.set_colorkey((0, 0, 0))

        screen.blit(mask_surf, (pos[0], pos[1]))

enter image description here

python python-3.x pygame
1个回答
0
投票

有不同的可能性。您可以使用 [

invert
}[https://www.pygame.org/docs/ref/mask.html#pygame.mask.Mask.invert] 反转蒙版。

mask = pygame.mask.from_surface(location_text)
mask.invert()
mask_surf = mask.to_surface()
mask_surf.set_colorkey((255, 255, 255))

您还可以在将蒙版变成表面时插入颜色(请参阅

to_surface()
):

mask = pygame.mask.from_surface(location_text)
mask_surf = mask.to_surface(setcolor=(0, 0, 0, 255), unsetcolor=(255, 255, 255, 255))
mask_surf.set_colorkey((255, 255, 255))
© www.soinside.com 2019 - 2024. All rights reserved.