用自定义模式填充pygame字体

时间:2015-04-23 12:16:05

标签: python pygame

我目前正在使用Python / Pygame开展一个(第一个)项目,我试图用模式叠加显示文本。该图案包括垂直线(1像素宽度),2种交替颜色。

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

我是Python的新手并且想知道:有没有办法创建某种类型的掩码,以便模式只出现在字体字符上,而不是在它们之外?我已经在网上搜索了一段时间但找不到任何东西。

非常感谢提前!

1 个答案:

答案 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

<强>结果:

enter image description here