无法淡出文本 - PyGame

时间:2015-04-08 16:25:49

标签: python pygame

我试图在屏幕上淡出一些文字,使用带有新表面的set_alpha函数。

我可以淡化文本中的 ,但是在使用此代码时:

label = myFont.render(textToFadeOut,1,(255,0,0))
newSurf = pygame.Surface(myFont.size(textToFadeOut))
newSurf.blit(label,(0,0))
for x in range (225):
    newSurf.set_alpha(225 - x)
    screen.blit(newSurf, (100,100))
    pygame.display.flip()
    pygame.time.delay(20)

淡出 out ,文字不会改变。

上面的代码基本上与我用来淡入的代码完全相同(有效),唯一的区别是我使用的是(225 - x)而不是x,以确保值逐渐降低。

我已经检查过x在其他任何地方都没有被使用,并且每个循环也打印出(225 - x)并且值会降低。

1 个答案:

答案 0 :(得分:2)

在blitting新曲面之前,您没有清除帧。尝试填充背景颜色,然后再次打开文本。

for x in range(225):
    screen.fill((0,0,0))  #or whatever your background color is
    newSurf.set_alpha(225-x)
    screen.blit(newSurf, (100,100))
    pygame.display.flip()
    pygame.time.delay(20)

考虑一下,它适用于淡入,因为文字变得越来越暗,但它不适用于淡出,因为你在旧文本之上进行blitting。