0

我正在尝试这样做:

surface_with_text = pygame.font(params).render(params) # transparent bg
surface_with_text.set_alpha(100) # make it half transparent
another_surface.blit(surface_with_text) # blit onto image

但是,当然,它默默地失败了 - 我的文字仍然完全不透明......为什么会这样?如何找到解决方法?

当然,我可以将“255 - 100”-transparent another_surface 复制到文本顶部,但这有什么好玩的,对吧?

4

1 回答 1

1

渲染的字体表面已经使用了每像素的 alpha 值(否则,它将具有纯色背景)。

Font.render文档

如果背景是透明的,则将包含一个像素 alpha。

set_alpha文档

此值不同于每个像素的 Surface alpha。如果 Surface 格式包含每像素 alpha,则此 alpha 值将被忽略。

于 2012-08-20T00:43:52.780 回答