2013-12-16 134 views
1

我正在使用pygame.font.Font.render()来渲染一些文本。我想文本是半透明的,即有一个不是255的alpha值,所以我尝试传递一个带alpha值的颜色参数(例如(255, 0, 0, 150))作为pygame.font.Font.render()的颜色参数,但它没有任何效果。我也尝试在生成的Surface对象上使用pygame.Surface.convert_alpha(),但那也没有做任何事情。有任何想法吗?Python - Pygame - 渲染半透明文本

+0

α如何为0?这仍然会显示图像吗? –

回答

3

我不知道为什么,但经过一些实验后,我发现用font.render创建的曲面不能改变它的alpha值。只需将该表面涂抹到另一个表面,然后更改新表面的Alpha值。

textsurface=font.render('Test', True, (0, 0, 0)) 
surface=pygame.Surface((100, 30)) 
surface.fill((255, 255, 255)) 
surface.blit(textsurface, pygame.Rect(0, 0, 10, 10)) 
surface.set_alpha(50) 
window.blit(surface, pygame.Rect(0, 30, 10, 10)) 
+0

这工作,并回答我的问题,但现在围绕文本冲浪是黑色的!我会继续试验。 – jellyberg

+0

@jellyberg不要忘记填充表面,在将文本粘贴到它上面之前,用白色更改alpha值。 – PygameNerd

+0

我实际上是使用海滩的一些像素艺术作为背景,所以我将它填充为黄色。我现在有一些非常漂亮的损坏数字,谢谢你的帮助! – jellyberg