Come realizzare una superficie con uno sfondo trasparente in Pygame
-
11-07-2019 - |
Domanda
Qualcuno può darmi qualche codice di esempio che crea una superficie con uno sfondo trasparente in pygame?
Soluzione
Questo dovrebbe farlo:
image = pygame.Surface([640,480], pygame.SRCALPHA, 32)
image = image.convert_alpha()
Assicurati che la profondità del colore (32) rimanga esplicitamente impostata altrimenti non funzionerà.
Altri suggerimenti
Puoi anche dargli un colorkey, proprio come la trasparenza dei file GIF. Questo è il modo più comune di produrre sprite. La bitmap originale ha la grafica e ha un certo colore come sfondo che non verrà disegnato, che è il colorkey:
surf.set_colorkey((255,0,255)) // Sets the colorkey to that hideous purple
Le superfici che usano colorkey invece di alfa sono molto più veloci da applicare poiché non richiedono alcuna matematica di fusione. La superficie SDL usa una semplice maschera di bit quando ha un set di colorkey, che si fonde praticamente senza sovraccarico.