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」と透明な another_surface のコピーをブリットすることもできますが、それは楽しいことですよね?

4

1 に答える 1

1

レンダリングされたフォント サーフェイスは、既にピクセルごとのアルファ値を使用しています (そうでない場合、背景は無地になります)。

Font.renderドキュメントから:

背景が透明な場合、ピクセル アルファが含まれます。

set_alphaドキュメントから:

この値は、ピクセルごとの Surface alpha とは異なります。Surface 形式にピクセルごとのアルファが含まれている場合、このアルファ値は無視されます。

于 2012-08-20T00:43:52.780 に答える