¿Has realizado un script para una colisión entre una bola y dos paletas con Pygame? Para aprender a programar con Python y, además, desarrollar videojuegos, debes seguir interactuando con otros programas de código y construyendo videojuegos de diferente índole, tales como un juego de Pong. Por eso, para trabajar tus habilidades en relación al código y en la creación de tus videojuegos, te contamos un ejemplo sobre la colisión entre una bola y dos paletas con Pygame.
¿Qué encontrarás en este post?
Toggle¿Cómo manejar la colisión entre una bola y dos paletas con Pygame?
Representación de la colisión entre una bola y dos paletas con Pygame
Para que la imagen de la colisión entre una bola y dos paletas con Pygame quede más clara y su representación en forma de código sea más práctica, a continuación te presentamos una figura que ilustra el movimiento para la colisión entre una bola y dos paletas con Pygame.
Como puedes ver en la imagen, el punto de la bola self.x == ANCHO – self.w, self.y, que usualmente está en movimiento, se encuentra con alguno de los puntos de la paleta (en naranja) y colisiona. De ambos objetos, bola y paleta, conocemos datos como alto, ancho y coordenadas. De esta manera, estos datos se calcularán para representar la operación de la colisión entre los dos objetos. Esta operación es Bola.x – Bola.w >= Paleta.x cuando la bola se dirige al lado derecho. Aun así, hay una función de la librería de Pygame, del módulo collide, que nos facilita comprobar esta colisión.
Ahora, antes de adentrarnos en el proceso para manejar al colisión en una bola y dos paletas con Pygame para el desarrollo de un videojuego como Pong, te recomendamos leer otros artículos, tales como manejar colisiones de Pong en Python y el glosario de métodos de funciones de collide en Pygame.
Colisión entre una bola y dos paletas con Pygame
La colisión entre una bola y dos paletas es una de las tres tareas que tenemos que realizar para que una pelota de Pong se mueva en términos de las condiciones del mismo juego. Por ejemplo, en un post anterior se habló de cómo controlar la colisión de la bola con los bordes inferior y superior de la pantalla del juego. Ahora es la oportunidad de comentar la colisión entre la bola y las dos paletas de cada jugador. Para representar esta colisión, usaremos el método colliderect, que comprueba si dos rectángulos se superponen, es decir, comprueba si han colisionado.
Entonces, en primer lugar, deberás tener establecido la clase del juego Pong, la clase de la bola y la clase de pelotas. Después de haberle atribuido las características necesarias para su funcionamiento, deberás seguir definiendo el movimiento de la bola. Por eso, propondremos una método para la definición de la colisión. Allí estableceremos una condición para cambiar la dirección de bola cuando rebote contra la paleta del jugador 1, del lado derecho, y después le agregamos la misma condición para la paleta del jugador 2 del lado izquierdo.
🔴 ¿Quieres Aprender a Programar con Python? 🔴
Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semanaEn este momento, ya podremos pensar en la aleatoriedad de ángulos de movimiento para que nunca sea fijo. Para ello, deberemos importar la librería random de Python:
#importar librerías
import Pygame
import random
#definición del movimiento
def colision_paletas (self)
if.selfjugador1.colliderect (self.bola) or if.selfjugador2.colliderect (self.bola)
self.bola.vel_h = -self.bola.vel_h
self.bola.vel_v = random.randint (-10, 10) #para que el ángulo sea aleatorio
Ahora ya sabes cómo manejar la colisión entre las dos paletas de cada jugador de Pong y la bola, por tanto, cada vez estás más cerca de terminar este ejemplo práctico y seguir desarrollando videojuegos con Pygame.
Si quieres conocer más acerca de los ángulos y de la aleatoriedad de movimiento sobre las trayectorias que realizan, puedes leer acerca de la aleatoriedad de ángulos.
En resumen, la colisión entre una bola y dos paletas con Pygame se realiza incluyendo módulos de la librería, como el método de colisiones y otros como el random.init para trabajar el rebote entre ambos.
Ahora, si quieres seguir aprendiendo sobre programación y el desarrollo de videojuegos con la librería de Pygame en Python, te recomendamos seguir realizando ejercicios prácticos. Por tanto, si necesita la guía de un programador profesional para hacerlo, queremos que conozcas el programa de Aprende a Programar desde Cero Full Stack Jr. Bootcamp. Esta formación intensiva para dar los primeros pasos en el sector IT te asegurará convertirte en un programador en pocos meses. ¡Apúntate y sigue programando!