Creacion de Mi Juego Ping Pong Jeffersonuwu

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

Informe de Aprendizaje: Desarrollo del Juego "Ping Pong Retro" en

Python
Introducción
En este proyecto, desarrollé un juego clásico de "Ping Pong retro" utilizando Python y la
biblioteca pygame. Este informe detalla el proceso de desarrollo, los aprendizajes obtenidos
y las instrucciones para ejecutar el juego.
Proceso de Desarrollo.
Configuración del Entorno de Trabajo: Comencé instalando pygame, una biblioteca
esencial para el desarrollo de juegos en Python. Para ello, ejecuté el siguiente comando en
la terminal: pip install Pygame.
Inicialización de Pygame: Inicialicé pygame y configuré la pantalla del juego con
dimensiones de 800x600 píxeles. También definí colores básicos como negro y blanco para
los elementos del juego.
Definición de Elementos del Juego: Creé las paletas y la pelota con dimensiones
específicas. Las posiciones iniciales de las paletas y la pelota se establecieron en el centro
de la pantalla.
Movimiento y Control: Implementé el movimiento de las paletas utilizando las teclas W y
S para el jugador izquierdo, y las flechas hacia arriba y hacia abajo para el jugador derecho.
La pelota se mueve automáticamente y rebota al chocar con los bordes de la pantalla y las
paletas.
Detección de Colisiones: Añadí lógica para detectar colisiones entre la pelota y las paletas,
así como con los bordes superior e inferior de la pantalla. Esto permitió que la pelota
rebotara adecuadamente, manteniendo la dinámica del juego.
Sistema de Puntuación: Implementé un sistema de puntuación que incrementa el puntaje
del jugador contrario cuando la pelota sale de los límites laterales de la pantalla. La
puntuación se muestra en la pantalla utilizando una fuente específica.
Bucle Principal del Juego: Desarrollé un bucle principal que maneja los eventos, actualiza
las posiciones de los elementos y refresca la pantalla en cada iteración, asegurando una
jugabilidad fluida.
Ejecución del Juego
Para ejecutar el juego, sigue estos pasos:
Instalación de Pygame: Asegúrate de tener pygame instalado ejecutando: pip install
Pygame.
Código del Juego:
Guarda el siguiente código en un archivo llamado ping_pong.py:

import pygame
import random

# Inicialización de Pygame
pygame.init()

# Configuración de la pantalla
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption('Ping Pong Retro')

# Colores
black = (0, 0, 0)
white = (255, 255, 255)

# Dimensiones de las paletas y la pelota


paddle_width = 15
paddle_height = 100
ball_size = 20

# Posiciones iniciales
paddle1_x = 50
paddle1_y = (screen_height // 2) - (paddle_height // 2)
paddle2_x = screen_width - 50 - paddle_width
paddle2_y = (screen_height // 2) - (paddle_height // 2)
ball_x = screen_width // 2
ball_y = screen_height // 2

# Velocidades iniciales
paddle_speed = 6
ball_speed_x = 4 * random.choice((-1, 1))
ball_speed_y = 4 * random.choice((-1, 1))

# Fuente para la puntuación


font = pygame.font.Font(None, 74)

# Puntuaciones iniciales
score1 = 0
score2 = 0

# Bucle principal del juego


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

# Obtención de las teclas presionadas


keys = pygame.key.get_pressed()
if keys[pygame.K_w] and paddle1_y > 0:
paddle1_y -= paddle_speed
if keys[pygame.K_s] and paddle1_y < screen_height - paddle_height:
paddle1_y += paddle_speed
if keys[pygame.K_UP] and paddle2_y > 0:
paddle2_y -= paddle_speed
if keys[pygame.K_DOWN] and paddle2_y < screen_height - paddle_height:
paddle2_y += paddle_speed

# Movimiento de la pelota
ball_x += ball_speed_x
ball_y += ball_speed_y

# Colisión con la parte superior e inferior de la pantalla


if ball_y <= 0 or ball_y >= screen_height - ball_size:
ball_speed_y *= -1

# Colisión con las paletas


if (ball_x <= paddle1_x + paddle_width and paddle1_y <= ball_y <= paddle1_y +
paddle_height) or \
(ball_x >= paddle2_x - ball_size and paddle2_y <= ball_y <= paddle2_y +
paddle_height):
ball_speed_x *= -1

# Puntuación y reinicio de la pelota


if ball_x <= 0:
score2 += 1
ball_x, ball_y = screen_width // 2, screen_height // 2
ball_speed_x *= random.choice((-1, 1))
ball_speed_y *= random.choice((-1, 1))

if ball_x >= screen_width - ball_size:


score1 += 1
ball_x, ball_y = screen_width // 2, screen_height // 2
ball_speed_x *= random.choice((-1, 1))
ball_speed_y *= random.choice((-1, 1))

# Dibujar en pantalla
screen.fill(black)
pygame.draw.rect(screen, white, (paddle1_x, paddle1_y, paddle_width, paddle_height))
pygame.draw.rect(screen, white, (paddle2_x, paddle2_y, paddle_width, paddle_height))
pygame.draw.ellipse(screen, white, (ball_x, ball_y, ball_size, ball_size))
pygame.draw.aaline(screen, white, (screen_width // 2, 0), (screen_width // 2,
screen_height))

# Dibujar la puntuación
text = font.render(str(score1), True, white)
screen.blit(text, (screen_width // 4, 10))
text = font.render(str(score2), True, white)
screen.blit(text, (screen_width * 3 // 4, 10))

pygame.display.flip()
pygame.time.Clock().tick(60)

pygame.quit()

Ejecución del Juego:


Ejecuta el archivo ping_pong.py desde la terminal: python ping_pong.py
Aprendizajes Obtenidos.
Al desarrollar este juego, aprendí varios conceptos clave en el desarrollo de videojuegos:
Manejo de Eventos:
Aprendí a manejar eventos de teclado para controlar los elementos del juego, permitiendo
una interacción dinámica con el usuario.
Detección de Colisiones:
Implementé la detección de colisiones entre la pelota y las paletas, así como con los bordes
de la pantalla, lo que es crucial para la jugabilidad de un juego de Ping Pong.
Actualización y Renderización:
Comprendí la importancia de actualizar y renderizar los elementos del juego en un bucle
continuo para mantener una experiencia de juego fluida.
Gestión de Puntuaciones:
Desarrollé un sistema de puntuación que permite llevar un registro de los puntos de cada
jugador, añadiendo un elemento competitivo al juego.
Uso de Pygame:
Gané experiencia utilizando la biblioteca pygame, lo que me permitirá desarrollar juegos
más complejos y con características adicionales en el futuro.

También podría gustarte