我正试图在游戏中加入一些雾,但我遇到了一个问题,我意识到雾太厚/不透明度太高。我想用更低的透明度来闪电战,但我不太确定如何,我在网上找到的教程不起作用/已经希望你知道如何。
万一你想知道代码是怎么写的:
screen.blit(fog, (0, 0))
编辑:我使用的是Python 3.8,以防万一
编辑编辑:我使用的是Pygame 2.0.0,以防万一也很重要
不以较低的不透明度进行blit,而是对具有较低不透明度的曲面进行blit。
使用surface.set_alpha()
在闪电战之前更改雾的不透明度。
文档:https://www.pygame.org/docs/ref/surface.html#pygame.Surface.set_alpha
此外,如果要从图像加载到雾中,请确保在其上使用surface.convert_alpha()
,否则它将不会在图像格式中注册透明度。
blit()
实际上将曲面混合到目标表面上,这取决于面的alpha通道。您所要做的就是更改fog
的alpha通道。使用set_alpha()
设置全表面图像的alpha值:
设置曲面的当前alpha值。将此曲面闪电传送到目标上时,像素将被绘制为略微透明。alpha值是从0到255的整数,0是完全透明的,255是完全不透明的。
如果您想应用50%透明雾:
fog.set_alpha(127)
screen.blit(fog, (0, 0))