PyGame Pong Simple: Crea tu Primer Juego en Python

PyGame Pong Simple: Crea tu Primer Juego en Python

Este tutorial te guiará paso a paso en la creación de una versión simple del clásico juego Pong utilizando PyGame. Aprenderás los conceptos básicos de la programación de juegos en Python, desde la configuración inicial hasta la implementación del movimiento de la pelota y las paletas.

Comenzaremos con un código base sencillo que nos servirá como punto de partida. Luego, agregaremos elementos esenciales del juego como la línea central, las paletas y la pelota, mostrando cómo dibujarlos en la pantalla.

Configuración Inicial

Antes de empezar a programar, asegúrate de tener PyGame instalado en tu sistema. Si aún no lo tienes, puedes instalarlo utilizando el siguiente comando en la terminal:

bash
pip install pygame

Una vez instalado, puedes crear un nuevo archivo Python llamado pong.py y pegar el siguiente código:

«`python
import pygame

Inicializa PyGame

pygame.init()

Define el tamaño de la pantalla

screenwidth = 800
screen
height = 600
screen = pygame.display.setmode((screenwidth, screen_height))

Título de la ventana

pygame.display.set_caption(«Pong»)

Color blanco

white = (255, 255, 255)

Bucle principal del juego

running = True
while running:
# Procesa eventos
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

# Llena la pantalla con blanco
screen.fill(white)

# Actualiza la pantalla
pygame.display.flip()

Finaliza PyGame

pygame.quit()
«`

Este código crea una ventana simple de 800×600 píxeles con un fondo blanco. El bucle while se encarga de mantener la ventana abierta y procesar eventos, como el cierre de la ventana.

Dibujando la Línea Central

Ahora agregaremos la línea central del campo de juego.

«`python

… (Código anterior)

Bucle principal del juego

running = True
while running:
# … (Código anterior)

# Dibuja la línea central
pygame.draw.line(screen, white, (screen_width // 2, 0), (screen_width // 2, screen_height), 2)

# ... (Código anterior)

«`

LEER:  Botones HTML como Enlaces: 3 Métodos para Crear Hipervínculos con Botones

En este código, pygame.draw.line() se utiliza para dibujar una línea vertical de color blanco desde la parte superior hasta la inferior de la pantalla. screen_width // 2 divide el ancho de la pantalla por la mitad, colocando la línea en el centro.

Creando las Paletas

Las paletas se definirán como rectángulos. Para dibujar un rectángulo, necesitaremos definir su posición y tamaño.

«`python

… (Código anterior)

Define las paletas

paddlewidth = 10
paddle
height = 80
paddle_speed = 5

Paleta del jugador 1

player1x = 50
player1
y = screenheight // 2 – paddleheight // 2
player1rect = pygame.Rect(player1x, player1y, paddlewidth, paddle_height)

Paleta del jugador 2

player2x = screenwidth – paddlewidth – 50
player2
y = screenheight // 2 – paddleheight // 2
player2rect = pygame.Rect(player2x, player2y, paddlewidth, paddle_height)

Bucle principal del juego

running = True
while running:
# … (Código anterior)

# Dibuja las paletas
pygame.draw.rect(screen, white, player1_rect)
pygame.draw.rect(screen, white, player2_rect)

# ... (Código anterior)

«`

Aquí, se definen dos paletas: player1_rect y player2_rect. Cada paleta es un rectángulo con un ancho de 10 píxeles y una altura de 80 píxeles. Las paletas se colocan inicialmente en el centro vertical de la pantalla, con un margen de 50 píxeles desde los bordes laterales.

Agregando la Pelota

La pelota también será un rectángulo.

«`python

… (Código anterior)

Define la pelota

ballsize = 10
ball
speedx = 5
ball
speedy = 5
ball
x = screenwidth // 2 – ballsize // 2
bally = screenheight // 2 – ballsize // 2
ball
rect = pygame.Rect(ballx, bally, ballsize, ballsize)

Bucle principal del juego

running = True
while running:
# … (Código anterior)

# Dibuja la pelota
pygame.draw.rect(screen, white, ball_rect)

# ... (Código anterior)

«`

LEER:  Unity Learn: Crea tus propios juegos 2D y 3D con Unity

La pelota tiene un tamaño de 10×10 píxeles. Se coloca inicialmente en el centro de la pantalla. Las variables ball_speed_x y ball_speed_y controlan la velocidad de la pelota en el eje horizontal y vertical.

Controlando el Movimiento de las Paletas

Ahora agregaremos código para que las paletas puedan moverse hacia arriba y hacia abajo usando las teclas W y S para el jugador 1 y las teclas Up y Down para el jugador 2.

«`python

… (Código anterior)

Bucle principal del juego

running = True
while running:
# … (Código anterior)

# Maneja el movimiento de las paletas
keys = pygame.key.get_pressed()
if keys[pygame.K_w]:
    player1_y -= paddle_speed
if keys[pygame.K_s]:
    player1_y += paddle_speed
if keys[pygame.K_UP]:
    player2_y -= paddle_speed
if keys[pygame.K_DOWN]:
    player2_y += paddle_speed

# Actualiza la posición de las paletas
player1_rect.y = player1_y
player2_rect.y = player2_y

# ... (Código anterior)

«`

Este código obtiene las teclas presionadas y actualiza la posición de las paletas en consecuencia. La posición de las paletas se limita a la altura de la pantalla para evitar que salgan de los límites.

Moviendo la Pelota

La pelota rebotará en las paredes y cambiará de dirección cuando golpee las paletas.

«`python

… (Código anterior)

Bucle principal del juego

running = True
while running:
# … (Código anterior)

# Mueve la pelota
ball_x += ball_speed_x
ball_y += ball_speed_y
ball_rect.x = ball_x
ball_rect.y = ball_y

# Rebota la pelota en las paredes
if ball_y <= 0 or ball_y >= screen_height - ball_size:
    ball_speed_y *= -1

# Rebota la pelota en las paletas
if ball_rect.colliderect(player1_rect) or ball_rect.colliderect(player2_rect):
    ball_speed_x *= -1

# ... (Código anterior)

«`

Este código actualiza la posición de la pelota en cada iteración del bucle. La pelota rebota en las paredes superiores e inferiores al invertir su velocidad vertical (ball_speed_y). Si la pelota colisiona con una de las paletas, su velocidad horizontal se invierte (ball_speed_x).

LEER:  JSP Expression Language (EL): La guía definitiva para principiantes

Actividades para Mejorar el Juego

Aquí hay algunas ideas para mejorar el juego:

  • Cambiar los colores: puedes experimentar con diferentes colores para la pelota, las paletas y la línea central.
  • Aumentar la velocidad de la pelota: aumenta la velocidad de la pelota con el tiempo o con cada punto que se marque.
  • Agregar un marcador: implementa un contador para cada jugador y mostrarlo en la pantalla.
  • Implementar una pausa: permite al jugador pausar el juego usando una tecla específica.
  • Agregar efectos de sonido: incluye sonidos para el rebote de la pelota, el golpe de las paletas y los puntos marcados.

Conclusión

En este tutorial, has aprendido cómo crear un juego simple de Pong usando PyGame. Has aprendido a configurar el entorno, dibujar elementos en la pantalla, controlar el movimiento de objetos y gestionar colisiones. Puedes usar este código como punto de partida para crear tu propia versión de Pong, con más características y funcionalidades.

Con el conocimiento adquirido, puedes seguir explorando la librería pygame y crear juegos más complejos y emocionantes.

Recuerda que la programación de juegos es un proceso creativo, así que no tengas miedo de experimentar y probar nuevas ideas. ¡Diviértete creando tu propio pygame pong!