我可以让我的文字在“场景”结束时淡出,但我不知道如何使文字或屏幕淡入。我看过很多不同的视频和帖子,但它们要么是针对不同于我尝试做的图像,比如说如何淡出(我已经知道如何淡出,我不知道淡入),要么它们已经过时。我也尝试过反转alpha值和计数器,但从我测试的结果来看,它并没有改变它,而且大部分都会给我带来错误
我也很想知道是否有人有更简单的方法来做这件事,例如,我是否可以从pygame中调用一些可以让我褪色的东西。。。例如:pygame.fadeout(screen, 2)
import pygame
from pygame.locals import *
pygame.init()
import pygame as pg
def title():
clock = pg.time.Clock()
screen = pygame.display.set_mode((1395, 855), pygame.FULLSCREEN)
font = pygame.font.Font("/Users/ACCOUNTNAME/Library/Fonts/ARIALN.TTF", 70)
color = pg.Color('#FFFFFF')
orig_surf = font.render("Filler: ", True, color)
color2 = pg.Color('#FFFFFF')
orig2_surf = font.render("Very Cool", True, color2)
txt_surf = orig_surf.copy()
txt2_surf = orig2_surf.copy()
alpha_surf = pg.Surface(txt_surf.get_size(), pg.SRCALPHA)
alpha2_surf = pg.Surface(txt2_surf.get_size(), pg.SRCALPHA)
alpha = 255
counter = 0
while True:
for e in pygame.event.get():
if e.type == QUIT or e.type == KEYDOWN and e.key == pygame.K_ESCAPE:
pygame.mixer.music.fadeout(1000)
return
if alpha > 0 and counter <= 80:
alpha = max(alpha-0, 0)
txt_surf = orig_surf.copy()
alpha_surf.fill((255, 255, 255, alpha))
txt_surf.blit(alpha_surf, (0, 0), special_flags=pg.BLEND_RGBA_MULT)
txt2_surf = orig2_surf.copy()
alpha2_surf.fill((255, 255, 255, alpha))
txt2_surf.blit(alpha2_surf, (0, 0), special_flags=pg.BLEND_RGBA_MULT)
counter += 1
elif alpha > 0 and counter > 80:
alpha = max(alpha-1.2, 0)
txt_surf = orig_surf.copy()
alpha_surf.fill((255, 255, 255, alpha))
txt_surf.blit(alpha_surf, (0, 0), special_flags=pg.BLEND_RGBA_MULT)
txt2_surf = orig2_surf.copy()
alpha2_surf.fill((255, 255, 255, alpha))
txt2_surf.blit(alpha2_surf, (0, 0), special_flags=pg.BLEND_RGBA_MULT)
#screen.fill((9, 47, 68, alpha))
screen.fill((0, 66, 99, alpha))
screen.blit(txt_surf, (302, 348))
screen.blit(txt2_surf, (509, 418))
pg.display.flip()
clock.tick(60)
if __name__ == '__main__':
pg.init()
title()
pg.quit()
您只需使用^{} 设置全文曲面的alpha值:
如果要淡出整个显示,请创建一个表面窗口大小和您选择的颜色:
在显示屏更新之前,在屏幕顶部混合表面:
相关问题 更多 >
编程相关推荐