Curso de videojuegos con Pygame

Transparencias y uso de cromas en Pygame

Capítulo 8: Sprites y transparencias con croma

En este capítulo, te enseñaré a sustituir el sprite de forma geométrica del capítulo anterior por una imagen transparente.
Hasta el momento, la clase Jugador está como puedes ver en el código de abajo.

class Jugador(pygame.sprite.Sprite)
# Sprite del jugador
def __init__(self):
	# Heredamos el init de la clase Sprite de Pygame
	super().__init__()
	# Rectángulo (jugador)
	self.image = pygame.Surface((200, 200))
	self.image.fill(H_FA2F2F)
	# Obtiene el rectángulo (sprite)
	self.rect = self.image.get_rect()
	# Centra el rectángulo (sprite)
	self.rect.center = (ANCHO // 2, ALTO // 2)

def update(self):
	# Actualiza esto cada vuelta de bucle.
	self.rect.y += 10
	if self.rect.top > ALTO:
		self.rect.bottom = 0

Para sustituir el rectángulo del sprite por una imagen, tienes que hacerlo sustituyendo la línea de self.image = pygame.Surface((200, 200)).
Lo haremos especificando una ruta de imagen.
También deberás eliminar la línea self.image.fill(H_FA2F2F):

self.image = pygame.image.load("ruta_de_imagen").convert()
# Esta línea elimínala:
self.image.fill(H_FA2F2F)

Recuerda que el .convert() sirve para optimizar las imágenes en Pygame. Es opcional.

Con esto, ya se debería mostrar la imagen.

Imagen del personaje principal

Para terminar con el capítulo veamos como hacer el efecto croma para eliminar los fondos de un mismo color en una imagen sin tener que procesarla con algún programa de edición gráfica.

La siguiente imagen tiene un chroma verde.
Podemos reemplazar este color por transparencia con un set_colorkey.

Sprite de coche con chroma
self.image = pygame.image.set_colorkey(VERDE)

Me elimina todo lo que sea de color verde, ya que en mi paleta de colores, tengo el VERDE especificado como: (rgb (R:0, G:255, B:0)).

Sprite de coche

Esta técnica la puedes utilizar con cualquier color, en el vídeo sale como seleccionar el color específico con PyCharm.


Comentarios

Si te quedan dudas sobre el temario, sobre Python, Pygame o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.