为什么我的 pygame 中的淡入效果不起作用?

问题描述 投票:0回答:1

我正在制作淡入淡出,屏幕在

pygame
中,但是当我激活它时,显示屏变黑,并且需要几秒钟才能切换到下一个场景,这是怎么回事?我查看了其他答案,它们对我不起作用。

我尝试使用黑色表面但设置透明 Alpha 来混合到显示器中。 这是相关代码:

    def __init__(self):
        self.game_display = pygame.display.set_mode((WIDTH, HEIGHT), pygame.SCALED|pygame.SRCALPHA)
        ...
    def fade_in(self):
        copied_surface = pygame.Surface(self.game_display.get_size())
        copied_surface.fill(BLACK)

        for i in range(255):
            self.clock.tick(FPS)
            copied_surface.fill(BLACK)

            self.blend_surface(copied_surface, i)

            pygame.display.flip()
    def blend_surface(self, image, alpha, pos = (0, 0)):
        image.set_alpha(min(1.0, alpha) * 255)
        self.game_display.blit(image, pos)

如果相关的话,我的Python版本是3.13.0。

python python-3.x pygame transparency pygame-surface
1个回答
0
投票

抱歉浪费时间了,我已经找到原因了。

image.set_alpha(min(1.0, alpha) * 255)

实际上应该是:

image.set_alpha(alpha)

因为 alpha 总是高于 1。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.