【发布时间】:2019-04-07 20:32:40
【问题描述】:
我需要一个由黑色矩形表示的“塔”,它是完全不透明的。我还需要一个半透明的圆圈来代表它可以拍摄的范围。这一切都需要是一个具有完全透明背景的 pygame.Surface 表面。如果需要澄清,我显然在课堂上使用它。我知道如何有一个半透明的表面,但我不能让它有一个透明的背景,相反它只是一个黑盒子。
【问题讨论】:
标签: python-3.x pygame transparency
我需要一个由黑色矩形表示的“塔”,它是完全不透明的。我还需要一个半透明的圆圈来代表它可以拍摄的范围。这一切都需要是一个具有完全透明背景的 pygame.Surface 表面。如果需要澄清,我显然在课堂上使用它。我知道如何有一个半透明的表面,但我不能让它有一个透明的背景,相反它只是一个黑盒子。
【问题讨论】:
标签: python-3.x pygame transparency
您必须创建表面并转换为带有 alpha 通道的表面。
surface = surface.convert_alpha()
接下来你必须用alpha=0 in [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()
【讨论】: