如何使用 un Pygame 的 alpha 通道?
How can I use the alpha channel un Pygame?
我的意思是,在 Python。透明度。我只是想让一个图像出现并慢慢消失,也就是变得透明。
我的实际代码。
def post_texto_1():
inicio = True
alpha = 255
screen.fill((0, 0, 0))
while inicio:
for event in pygame.event.get():
if event.type == QUIT:
exit()
imagen_postTexto1.set_alpha(alpha)
screen.blit(imagen_postTexto1, (0, 0))
alpha -= 1
if alpha == 0:
inicio = False
tex2 = u"¿Dónde estoy? ¿A dónde voy?"
mostrar_mensaje(tex2, (255, 255, 255))
print("El alpha de la imagen es : "+str(alpha))
pygame.display.update()
当您使用 convert_alpha()
时,您更改了图像的像素格式 ,包括每个像素的 alpha。
根据 set_alpha()
的 PyGame 文档,如果 Surface 格式(即图像)包含 每像素 alpha.
如果还需要显示透明图片,想用set_alpha()
,可以用PyGames set_colorkey()
方法设置one 颜色透明.
使用以下函数使图像消失:
def vanish_image(image, screen, background_color):
image = pygame.image.load(image).convert()
image.set_colorkey((0,0,0)) #RGB-value for transparent color if needed
alpha = 255
while True:
if alpha < 0: #exit function if alpha is smaller than 0
return
alpha -= 1
screen.fill(background_color) #"clear" last blitted image
image.set_alpha(alpha)
pygame.display.update(screen.blit(image,(0,0))) #blit new image onto surface and update only this area
pygame.time.delay(20) #wait 20 milliseconds
我的意思是,在 Python。透明度。我只是想让一个图像出现并慢慢消失,也就是变得透明。
我的实际代码。
def post_texto_1():
inicio = True
alpha = 255
screen.fill((0, 0, 0))
while inicio:
for event in pygame.event.get():
if event.type == QUIT:
exit()
imagen_postTexto1.set_alpha(alpha)
screen.blit(imagen_postTexto1, (0, 0))
alpha -= 1
if alpha == 0:
inicio = False
tex2 = u"¿Dónde estoy? ¿A dónde voy?"
mostrar_mensaje(tex2, (255, 255, 255))
print("El alpha de la imagen es : "+str(alpha))
pygame.display.update()
当您使用 convert_alpha()
时,您更改了图像的像素格式 ,包括每个像素的 alpha。
根据 set_alpha()
的 PyGame 文档,如果 Surface 格式(即图像)包含 每像素 alpha.
如果还需要显示透明图片,想用set_alpha()
,可以用PyGames set_colorkey()
方法设置one 颜色透明.
使用以下函数使图像消失:
def vanish_image(image, screen, background_color):
image = pygame.image.load(image).convert()
image.set_colorkey((0,0,0)) #RGB-value for transparent color if needed
alpha = 255
while True:
if alpha < 0: #exit function if alpha is smaller than 0
return
alpha -= 1
screen.fill(background_color) #"clear" last blitted image
image.set_alpha(alpha)
pygame.display.update(screen.blit(image,(0,0))) #blit new image onto surface and update only this area
pygame.time.delay(20) #wait 20 milliseconds