Pygame – Tamaño ventana, mostrar imagen y controlar cierre

El Taller de videojuegos con Python en elbinario.net ha comenzado. Aún no me queda muy claro como funciona el tema pero me he apuntado a la lista que han creado para la ocasión.

Puedes encontrar toda esa información en https://elbinario.net.

El tema es que me ha picado la curiosidad de por fin darle vida a pygame. Esta librería para python llevo años conociendo de su existencia pero jamás me ha dado por usarla. Creo que ya era hora.

Aquí dejo un pequeño ejemplo que puede servir como plantilla para comenzar a usarlo y tener controlado al menos el tema de la ventanita, el mostrar imagenes y controlar el cierre de la ventana.

Me he basado en el tutorial siguiente (que es una maravilla): http://razonartificial.com/tutoriales-pygame/

No voy a ponerme a explicar el código. Simplemente lo pego para que me quede en algún lado y mañana cuando lo necesite pueda encontrarlo. Digamos que es como la plantilla principal del juego. Tiene loop, zona para declarar las constantes, función main, función de mostrar imagenes, …

El código:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys,pygame
from pygame.locals import *

# Constantes
pantalla = {'ancho': 800, 'alto': 600}


def load_image(filename, transparent=False):
	image = pygame.image.load(filename)
	image = image.convert()
	if transparent:
		color = image.get_at((0,0))
		image.set_colorkey(color, RLEACCEL)
	return image

# Función principal
def main():
	screen = pygame.display.set_mode((pantalla['ancho'], pantalla['alto']))
	pygame.display.set_caption("Tax Evaders")

	background_image = load_image('imgs/fondo.jpg')

	while True:
		for eventos in pygame.event.get():
			# Para que se cierre la ventana si se presiona Escape o la letra q
			if eventos.type == pygame.locals.KEYDOWN:
				# https://www.pygame.org/docs/ref/key.html
				if eventos.key == pygame.K_q or eventos.key == pygame.K_ESCAPE:
					sys.exit(0)
			# Para que se cierre la ventana si presiona en la x el usuario
			if eventos.type == QUIT:
				sys.exit(0)
		screen.blit(background_image, (0, 0))
		pygame.display.flip()

# Ejecutamos la función main y comprobamos que no se ejecute si se importa como modulo.
if __name__ == '__main__':
	pygame.init()
	main()

Se ha de guardar eso en un archivo llamado por ejemplo: juego.py
Se ha de crear un directorio llamado imgs y dentro bajar esta imagen:

Se ejecutará por ejemplo así:

$ python3 juego.py

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *