我正在制作淡入淡出,屏幕在
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。
抱歉浪费时间了,我已经找到原因了。
image.set_alpha(min(1.0, alpha) * 255)
实际上应该是:
image.set_alpha(alpha)
因为 alpha 总是高于 1。