set_alpha()用于部分透明的表面

时间:2012-08-20 00:27:14

标签: python pygame

我正在尝试这样做:

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” - 透明的another_surface副本,但这有什么乐趣,对吗?

1 个答案:

答案 0 :(得分:1)

渲染的字体表面已经使用了每像素的alpha值(否则,它会有一个坚实的背景)。

来自Font.render doc

  

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

来自set_alpha doc

  

此值与每像素Surface alpha不同。如果Surface格式包含每像素alphas,那么将忽略此alpha值。