Effetto fade out su immagine con pygame
« il: Maggio 05, 2020, 19:20 »
Buongiorno a tutti,
sto cercando di far pratica con pygame e, nel videogioco che sto facendo vorrei che l'immagine png che fa da titolo sparisse con un effetto fade out.
Ho usato il seguente codice:

fondo = "C:\\Users\\Usuario\\Desktop\\pygame\\spazio.png"
title = "C:\\Users\\Usuario\\Desktop\\pygame\\titolo.png"

#inizializzazione
    # --- inizializza pygame
pygame.init()
    # --- inizializza schermo
screen = pygame.display.set_mode((0,0))
pygame.display.set_caption("")
scrsize = screen.get_size ()
    # --- carica sfondo
surf_img = pygame.image.load(fondo).convert()
    # --- ridimensiona sfondo se lo schermo ha dimensioni diverse
surf_back = pygame.transform.scale (surf_img, (scrsize[0], scrsize[1]))
    # --- scrive lo sfondo sullo schermo
screen.blit(surf_back, (0, 0))
pygame.display.flip()
    # --- carica il titolo e lo centra
titolo = pygame.image.load(title).convert_alpha()
titsize = titolo.get_size ()
titposx = (scrsize[0] - titsize[0]) / 2
titposy = (scrsize[1] - titsize[1]) / 2
screen.blit(titolo, (titposx, titposy))
pygame.display.flip()

done = True
j = 255
while done:
    titolo.set_alpha(j)
    j -= 1
    screen.blit(titolo, (titposx, titposy), special_flags=pygame.BLEND_RGBA_MULT)
    pygame.display.flip()
 
    for event in pygame.event.get():
        if  event.type == pygame.QUIT:
            sys.exit()

peró cosí facendo scompare il testo, ma resta in nero il riquadro dell'immagine -titolo- sulla mia immagine di sfondo.  Se faccio il blit di titolo senza lo special flag non succede niente. l'alpha non viene riconosciuto.  MI servirebbero lumi su come eliminare il fastidioso riquadro nero.