如何在一段时间内使图像透明?

时间:2014-08-03 23:53:34

标签: python python-3.x pygame opacity blit

我正在尝试在游戏中玩家死亡时显示死机屏幕,而不是只是弹出我希望它逐渐变得越来越不透明,直到不透明度为256.我目前有这行代码下面显示图像,但我想知道如何在几秒钟内逐渐增加不透明度。

screen.blit(pygame.image.load("Images/dead.jpg"), (0, 0))

我试图添加一个for循环并试图使用convert_alpha,但我无法找到一种方法,并且将非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

这是我要做的。我在评论中解释了所有内容:

# Allow the image to have its alpha value changed
image = pygame.image.load("Images/dead.jpg").convert()

# Set the transparency to full
image_alpha = 0

# Decide how many frames you want the image to fade in over
fade_frame_number = 60
# And the frames per second
FPS = 30
FPS_Clock = pygame.time.Clock()

while True:
    window.fill((255, 255, 255))               # Fill the window with a white bg
    if image_alpha < 255:
        image_alpha += 255 / fade_frame_number # Change the transparency variable
    image.set_alpha(image_alpha)               # Set the image's alpha value
    window.blit(image, (0, 0))                 # Display the image
    pygame.display.update()                    # Update the screen
    FPS_Clock.tick(FPS)                        # Wait for the next frame

在此,window是显示表面。