首页 > 解决方案 > 文本中的 Python pygame alpha

问题描述

这个问题是从之前提出的问题扩展而来的: Pygame alpha in polygon only

现在我可以通过surface.convert_alpha()成功地在2表面下绘制多边形和带alpha的线。我不需要使用 alpha 设置整个表面(这是从在线搜索的解决方案,但不适用于我的情况)。据我了解,使用 surface.convert_alpha() 允许我在使用 pygame.draw.polygon() 时设置每个多边形中的 alpha。

此外,我还可以通过在本地使用 alpha 来清理现有的多边形。如果需要清洗多边形,我只能在同一个位置绘制相同的多边形,颜色=(0, 0, 0, 0),这样之前的颜色只覆盖在需要清洗的位置,这种方法提高了速度,因为我不需要再次绘制整个表面。我可以在多边形位置局部清理像素。

但是,当我想在 Text 上应用相同的方法时,它似乎不适用。我的示例代码是:

self.CurInfoCanv = pygame.Surface((1000, 1000), HWSURFACE|DOUBLEBUF|RESIZABLE).convert_alpha()
self.CurInfoFont = pygame.font.SysFont('Comic Sans MS', 30)
Text = self.CurInfoFont.render('TextHere', True, (0, 0, 0, 0))
TextRect = Text.get_rect()
TextRect.topleft = (0, 0)
self.CurInfoCanv.blit(Text, TextRect)
self.Displayer.blit(self.CurInfoCanv, (0, 0))

self.CurInfoFont.render('TextHere', True, (0, 0, 0, 0)),颜色以第 4 个元素作为 alpha 输入,文本仍然没有透明度。请告诉我是否有任何错误或更聪明的方法来做到这一点。谢谢你。

标签: pythonpython-3.xpygame

解决方案


推荐阅读