我需要有一个用完全不透明的黑色矩形表示的“塔”。我还需要有一个圆圈来表示它可以在半透明范围内拍摄的范围。所有这些都必须是pygame.Surface表面具有完全透明的背景。如果需要澄清的话,我显然在课堂上使用它。我知道如何具有半透明的表面,但是我无法使它具有透明的背景,相反,它只是一个黑盒子。
答案 0 :(得分:1)
您必须创建表面并使用alpha通道转换为表面。
surface = surface.convert_alpha()
Nex,您必须用alpha=0
中有[R,G,B,Alpha]
的颜色填充它
surface.fill([0,0,0,0])
您的表面空着,背景透明。
现在您可以使用不同的透明度进行绘制-您必须使用alpha
-[R,G,B,Alpha]
的颜色。
例如半透明圆(transparency 50%
= alpha=128
)
pygame.draw.circle(surface, (0,0,0, 128), (100, 100), 100)
使用alpha=0
,它将是不可见的;使用alpha=255
,它将是完全不透明的。
如果您的.png
具有透明性,则可以在加载后使用.convert_alpha()
来获得透明性。
image = pygame.image.load("file.png").convert_alpha()
查看带有transparency in PyGame的示例