用自定义图案填充 pygame 字体

Fill pygame font with custom pattern

我目前正在 Python/Pygame 进行(第一个)项目,我正在尝试显示带有图案叠加层的文本。该图案由垂直线(1 像素宽)、2 种交替颜色组成。

我正在使用 pygame.draw.line() 创建此图案,并且我可以使用我创建的自定义函数创建矩形。但现在我想在我的字体上使用这种图案。

我是 Python 的新手,我想知道:有没有办法创建某种掩码,使图案仅出现在字体字符上,而不出现在字体字符之外?我在网上搜索了一段时间,但找不到任何东西。

非常感谢!

您可以使用不同的混合模式来获得您想要的效果。

这是一个简单的示例(其中 t.bmp 是带有您的图案的图像,当然您可以使用任何其他表面):

import pygame
pygame.init()
screen = pygame.display.set_mode((490, 160))
font = pygame.font.SysFont('Arial', 150)
pattern = pygame.image.load('t.bmp').convert()
text = font.render('FooBar', True, (255, 255, 255), (0, 0, 0))

pattern.blit(text, (0, 0), special_flags = pygame.BLEND_MULT)

screen.blit(pattern, (0, 0))
pygame.display.flip();
while True:
    if pygame.event.get(pygame.QUIT):
        break

结果: