how to create a multicolor "font-string" in pygame??

Diez B. Roggisch deets at nospam.web.de
Fri Nov 10 00:31:48 CET 2006


Diez B. Roggisch schrieb:
> Iacopo.Marmo at gmail.com schrieb:
>> Hi! I need to manipulate multicolor strings, i.e. strings with a color
>> associated with each letter.
>> Any suggestions?
> 
> There is no support for multi-color strings as such in pygame. If you 
> use a fixed-width font, things are easy. Just create the strings one 
> after another using spaces as prefix. E.g.
> 
> back = (0,0,0)
> font = pygame.font.Font(font_fn, size)
> images = []
> for i, c in enumerate("colored string"):
>     s = " " * i + c
>     color = color_for_index(i)
>     s_image = font.render(s, True, color, back)
>     images.append(s_image)

Don't drink and code... *sigh*

Of course you can just create an equally dimensioned image for each 
character and each color (cached or not, however you like it), and just 
blit these one after another, offsetting them with the character width.

Diez



More information about the Python-list mailing list