Pong Python: Creación del Juego Pong en Python
En este tutorial, aprenderemos a crear el juego Pong en Python. Pong es un juego de arcade clásico en el que dos jugadores controlan paletas para golpear una pelota hacia la red del otro jugador. El primer jugador en anotar 11 puntos gana el juego.
Requisitos
Para seguir este tutorial, necesitarás los siguientes requisitos:
- Python 3
- El módulo Pygame
Instalación de Pygame
Para instalar Pygame, abre una terminal y ejecuta el siguiente comando:
pip install pygame
Creación de la ventana de juego
Lo primero que debemos hacer es crear la ventana de juego. Para ello, importaremos el módulo Pygame y crearemos una ventana con el método pygame.display.set_mode()
.
import pygame
# Creamos la ventana de juego
pygame.init()
pantalla = pygame.display.set_mode((800, 600))
Creación de la pelota
La pelota es un objeto que se mueve por la pantalla y rebota en las paredes y las paletas. Para crear la pelota, importaremos el módulo pygame.rect
y crearemos un objeto pygame.Rect
.
import pygame.rect
# Creamos la pelota
pelota = pygame.Rect(400, 300, 20, 20)
Creación de las paletas
Las paletas son objetos que se mueven por la pantalla y sirven para golpear la pelota. Para crear las paletas, importaremos el módulo pygame.rect
y crearemos dos objetos pygame.Rect
.
import pygame.rect
# Creamos las paletas
paleta_1 = pygame.Rect(20, 200, 100, 20)
paleta_2 = pygame.Rect(780, 200, 100, 20)
Movimiento de la pelota
La pelota se mueve por la pantalla en dos direcciones: horizontal y vertical. Para controlar el movimiento de la pelota, actualizaremos su posición en cada bucle de juego.
# Actualizamos la posición de la pelota
pelota.x += pelota.velx
pelota.y += pelota.vely
Colisiones
La pelota debe rebotar en las paredes y las paletas. Para detectar las colisiones, utilizaremos el método pygame.Rect.collidepoint()
.
# Comprobamos si la pelota ha chocado con la pared superior
if pelota.y < 0:
pelota.vely *= -1
# Comprobamos si la pelota ha chocado con la pared inferior
if pelota.y > 600:
pelota.vely *= -1
# Comprobamos si la pelota ha chocado con la paleta 1
if pelota.colliderect(paleta_1):
pelota.velx *= -1
# Comprobamos si la pelota ha chocado con la paleta 2
if pelota.colliderect(paleta_2):
pelota.velx *= -1
Mostrar la puntuación
La puntuación se muestra en la parte superior de la pantalla. Para mostrar la puntuación, utilizaremos el método pygame.draw.rect()
.
# Actualizamos la puntuación
if pelota.x < 0:
jugador_2 += 1
elif pelota.x > 800:
jugador_1 += 1
# Mostramos la puntuación
pygame.draw.rect(pantalla, (255, 0, 0), (10, 10, 100, 20))
pygame.draw.rect(pantalla, (0, 255, 0), (700, 10, 100, 20))
# Escribimos la puntuación
pygame.draw.rect(pantalla, (255, 255, 255), (20, 10, 100, 20), 2)
pygame.draw.rect(pantalla, (255, 255, 255), (700, 10, 10