【问题标题】:Is there a way to have a semi transparent circle with a completely transparent background and completely opaque box in the middle?有没有办法让一个半透明的圆圈有一个完全透明的背景和中间完全不透明的盒子?
【发布时间】:2019-04-07 20:32:40
【问题描述】:

我需要一个由黑色矩形表示的“塔”,它是完全不透明的。我还需要一个半透明的圆圈来代表它可以拍摄的范围。这一切都需要是一个具有完全透明背景的 pygame.Surface 表面。如果需要澄清,我显然在课堂上使用它。我知道如何有一个半透明的表面,但我不能让它有一个透明的背景,相反它只是一个黑盒子。

【问题讨论】:

标签: python-3.x pygame transparency


【解决方案1】:

您必须创建表面并转换为带有 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()

查看transparency in PyGame的示例

【讨论】:

  • 谢谢伙计,这个真的难倒我,但你的解决方案效果很好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
  • 2014-02-23
相关资源
最近更新 更多