无法淡出文本 - PyGame
Unable to fade out text - 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) 每个循环并且值确实变低了。
您没有在 blit 新表面之前清除框架。尝试填充背景颜色,然后再次 blit 文本。
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)
想一想,它适用于淡入,因为文本越来越暗,但它不适用于淡出,因为你在旧文本之上闪烁。
我正在尝试淡出屏幕上的一些文本,使用新表面的 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) 每个循环并且值确实变低了。
您没有在 blit 新表面之前清除框架。尝试填充背景颜色,然后再次 blit 文本。
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)
想一想,它适用于淡入,因为文本越来越暗,但它不适用于淡出,因为你在旧文本之上闪烁。