Curso de videojuegos con Pygame

¿Cómo añadir una imagen de fondo en Pygame?

Capítulo 3: Personalizar icono de la ventana e imágenes de fondo

En este capítulo vas a aprender a añadir un fondo con una imagen, cómo personalizar el icono y un título en la ventana de Pygame.

Partimos con el siguiente código. Recuerda que puedes ir viendo el vídeo para entenderlo todo mejor y no liarte con la colocación de los elementos.

# importación de paquetes
import pygame
import sys

# Inicialización de Pygame
pygame.init()

# Creación de la pantalla
PANTALLA = pygame.display.set_mode((1000, 600))

# Especificación de título
pygame.display.set_caption('Exterminator')

# Bucle de ejecución
while True:
	for event in pygame.event.get():
		if event.type == pygame.QUIT:
			pygame.quit()
			sys.exit()
	pygame.display.update()

El resultado es una pantalla vacía un poco más grande que la del capítulo anterior.

¿Cómo añadir una imagen de fondo en Pygame?

A partir de esta base, vamos a añadir un fondo. Para especificar una imagen de fondo lo puedes hacer así de fácil:

fondo = pygame.image.load("imagenes/ciudad.jpg")

Deberás sustituir la ruta de la imagen por la que tengas en tu proyecto. En mi caso, tengo los siguientes archivos:

pygame_capitulo_3/
|-- imagenes/
|-- |-- ciudad.jpg
|-- exterminator.py

Puedes descargarte el fondo de este capítulo haciendo click aquí.

Una vez especificado el archivo de la imagen hay que indicarle a nuestro juego dónde debe mostrar esa imagen.

 PANTALLA.blit(fondo,(0,0))

Lo que hacemos con este blit() es pasarle como argumentos el fondo para mostrar en la PANTALLA del juego y con el (0,0) le especificamos que no queremos márgenes.

Ten en cuenta, que de esta forma, tienes que redimensionar la imagen de fondo a las dimensiones de la pantalla, si no, saldrá solo un trozo.
Más adelante veremos como redimensionar imágenes directamente con Pygame.

Puesto que la imagen de fondo es de 2467x1696 píxeles, no cabe en la PANTALLA que tiene 1000x600 píxeles de tamaño.

Fondo sin redimensionar en Pygame

Esta redimensión la puedes hacer con Photoshop o cualquier otro programa que sea capaz de redimensionar imágenes.

¿Cómo se redimensiona una imagen con Photoshop?

Para redimensionar una imagen con Photoshop, primero de todo, abre la imagen.

Pulsa la combinación de teclas CTRL + ALT + SHIFT + S para guardar para web (optimizado para que ocupe menos, no solo para web).

En la parte marcada, tienes que indicar el ancho y el alto de la imagen. Además, el simbolito de la derecha deberá estar en la misma posición que en la imagen para que te permita hacer la redimensión libremente sin restringir a la proporción.

Redimensionar imagen de fondo con Photoshop

Resultado:

Imagen de fondo Pygame

¿Cómo se puede añadir un icono en la ventana de Pygame

Para mostrar un icono personalizado en la ventana del juego, lo debes hacer cargando la imagen igual que has hecho con el fondo y le añades un display.set_icon() para especificar que esa imagen la quieres poner como icono en la ventana. El título, ya te mostré en el capítulo anterior como ponerlo.

icono = pygame.image.load("imagenes/exterminator.png")
pygame.display.set_icon(icono)

Resultado:

Icono en la ventana de Pygame

Finalmente, tras este capítulo, te debería quedar el proyecto de esta forma:

pygame_capitulo_3/
|-- imagenes/
|-- |-- ciudad.jpg
|-- |-- exterminator.png
|-- exterminator.py

Archivos del proyecto

También, te dejo la página oficial del autor del personaje que aparece en este capítulo: Exterminator

La página está en inglés y la descarga es totalmente gratuita para uso personal y comercial, ¡no tienes obligación de pagar nada!
Cualquier duda, déjame un comentario.

Aquí te dejo también la imagen de fondo del juego: Imagen de fondo


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.