我目前正在使用Python / Pygame开展一个(第一个)项目,我试图用模式叠加显示文本。该图案包括垂直线(1像素宽度),2种交替颜色。
我正在使用pygame.draw.line()创建此模式,我可以使用我创建的自定义函数创建矩形。但现在我想在我的字体上使用这种模式。
我是Python的新手并且想知道:有没有办法创建某种类型的掩码,以便模式只出现在字体字符上,而不是在它们之外?我已经在网上搜索了一段时间但找不到任何东西。
非常感谢提前!
答案 0 :(得分:1)
您可以使用不同的混合模式来获得您想要的效果。
这是一个简单的例子(其中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
<强>结果:强>