Cómo hacer debug con Python
Te mostramos cómo depurar un programa en Python 3 utilizando el editor Visual Studio Code.
Aprende como desarrollar juegos de forma sencilla utilizando Python 3, gracias a la librería Pygame.
Tabla de contenidos
La librería Pygame de Python nos permite desarrollar, de una manera muy sencilla, juegos bastante atractivos.
Para realizar el ejemplo hemos instalado la librería Pygame en un entorno virtual, proceso que hemos visto en un video previo sobre cómo trabajar con entornos virtuales.
El siguiente paso será activar ese entorno virtual, lo que haremos de la siguiente forma:
source ~pygame_env/bin/activate
Una vez activado nuestro entorno virtual, podemos comprobar que tenemos la librería Pygame instalada:
pip list
Vemos que está instalada en su versión más reciente, que es la 1.9.4.
Vamos a desarrollar un juego de forma práctica, el cual desarrollaremos en tres fases, para que podáis ver lo sencillo que resulta añadir nuevas funcionalidades a nuestros juegos con Pygame.
El primer programa que vamos a utilizar es el siguiente:
import sys, pygame
# Inicializamos pygame
pygame.init()
# Muestro una ventana de 800x600
size = 800, 600
screen = pygame.display.set_mode(size)
# Cambio el título de la ventana
Pygame.display.set_caption(“Juego BALL”)
# Comenzamos el bucle del juego
run=True
while run:
# Capturamos los eventos que se han producido
for event in pygame.event.get():
# Si el evento es salir de la ventana, terminamos
if event.type == pygame.QUIT: run = False
# Salgo de pygame
pygame.quit()
Este programa consta de varios pasos:
Todos los juegos tienen normalmente la misma estructura, es decir, un juego es un bucle infinito dónde se van obteniendo los eventos, que pueden ser las pulsaciones de teclas o las pulsaciones y movimientos del ratón, y según el evento que se vaya produciendo se va a provocar una operación u otra.
En esta primera versión del juego el único evento que vamos a recoger es el evento QUIT, que es el evento que se produce cuando le damos al botón cerrar de la ventana. En ese caso terminaría el bucle y terminaría el programa.
Ejecutamos el programa para comprobar cómo funciona la primera versión de nuestro juego, y vemos que aparece una ventana de 800x600 únicamente, y que si pulsamos el botón de cerrar la ventana termina la ejecución del mismo.
Tanto Pygame como Python son lenguajes multiplataforma, por lo tanto el mismo programa ejecutado en Windows funcionaría sin ningún problema.
Vamos ahora con la segunda versión de nuestro juego, en la que vamos a incluir un poco más de funcionalidad.
Esta segunda versión es la siguiente:
import sys, pygame
# Inicializamos pygame
pygame.init()
# Muestro una ventana de 800x600
size = 800, 600
screen = pygame.display.set_mode(size)
# Cambio el título de la ventana
Pygame.display.set_caption(“Juego BALL”)
# Inicializamos variables
width, height = 800, 600
speed = [1, 1]
white = 255, 255, 255
# Crea un objeto imagen y obtengo su rectángulo
ball = pygame.image.load(“ball.png”)
ballrect = ball.get_rect()
# Comenzamos el bucle del juego
run=True
while run:
# Espero un tiempo (milisegundos) para que la pelota no vaya muy rápida
pygame.time.delay(2)
# Capturamos los eventos que se han producido
for event in pygame.event.get():
#Si el evento es salir de la ventana, terminamos
if event.type == pygame.QUIT: run = False
# Muevo la pelota
ballrect = ballrect.move(speed)
if ballrect.left < 0 or ballrect.right > width:
speed[1] = -speed[1]
#Pinto el fondo de blanco, dibujo la pelota y actualizo la pantalla
screen.fill(white)
screen.blit(ball, ballrect)
pygame.display.flip()
# Salgo de pygame
pygame.quit()
Este segundo programa tiene los siguientes añadidos:
Ejecutamos el programa y podemos ver cómo tenemos una pelota que está rebotando en la ventana. Si cambiamos el valor del delay a 1 vemos que la pelota se mueve más rápidamente.
Con un programa muy pequeño hemos obtenido una mayor funcionalidad en nuestro juego.
Por último vamos a ver una tercera versión, dónde tendremos nuestra bola y además tendremos un bate, un dibujo que vamos a poder moverlo para que rebote la pelota.
El programa quedaría de esta forma:
import sys, pygame
# Inicializamos pygame
pygame.init()
# Muestro una ventana de 800x600
size = 800, 600
screen = pygame.display.set_mode(size)
# Cambio el título de la ventana
Pygame.display.set_caption(“Juego BALL”)
# Inicializamos variables
width, height = 800, 600
speed = [1, 1]
white = 255, 255, 255
# Crea un objeto imagen pelota y obtengo su rectángulo
ball = pygame.image.load(“ball.png”)
ballrect = ball.get_rect()
# Crea un objeto imagen bate y obtengo su rectángulo
bate = pygame.image.load(“bate.png”)
baterect = bate.get_rect()
# Pongo el bate en el centro de la pantalla
baterect.move_ip(400, 260)
# Comenzamos el bucle del juego
run=True
while run:
# Espero un tiempo (milisegundos) para que la pelota no vaya muy rápida
pygame.time.delay(0)
# Capturamos los eventos que se han producido
for event in pygame.event.get():
#Si el evento es salir de la ventana, terminamos
if event.type == pygame.QUIT: run = False
# Compruebo si se ha pulsado alguna tecla
keys = pygame.key.get_pressed()
if keys[pygame.K_UP]:
baterect=baterect.move(0, -1)
if keys[pygame.K_DOWN]:
baterect=baterect.move(0, 1)
# Compruebo si hay colisión
If baterect.colliderect(ballrect):
speed[0] = - speed[0]
# Muevo la pelota
ballrect = ballrect.move(speed)
if ballrect.left < 0 or ballrect.right > width:
speed[1] = -speed[1]
#Pinto el fondo de blanco, dibujo la pelota y actualizo la pantalla
screen.fill(white)
screen.blit(ball, ballrect)
pygame.display.flip()
# Salgo de pygame
pygame.quit()
En esta tercera versión añadimos lo siguiente:
Ejecutamos el programa y vemos que podemos mover el bate con las teclas de arriba y abajo, y si tocamos la pelota con el bate va a rebotar.
De una manera muy sencilla, con un programa muy pequeño, obtenemos un resultado muy rápido a la hora de realizar los juegos.
Os invitamos a entrar en la página de Pygame, dónde podéis encontrar documentación, tutoriales y ejemplos de juegos que han hecho otros usuarios, además de tener su código para estudiarlo.
Si quieres aprender en profundidad Python, puedes hacer el curso de Python 3 desde cero de nuestro profesor José Domingo Muñoz en el que aprenderás los fundamentos del lenguaje de programación Python 3 desde cero, pensado para no programadores que se quieran iniciar en este mundo.
También te puede interesar
Te mostramos cómo depurar un programa en Python 3 utilizando el editor Visual Studio Code.
Te contamos los motivos por los que Python 3 es un lenguaje de programación muy interesante para los administradores de sistemas.
Descubre el fascinante mundo del lenguaje de programación que funciona como una auténtica navaja suiza cuando se trata...