¿Cómo mover objetos con Pygame en Python?

Autor: | Última modificación: 30 de junio de 2022 | Tiempo de Lectura: 4 minutos
Temas en este post: , ,

¿Alguna vez has pensando en cómo mover objetos con Pygame en Python? Una de las cosas más interesantes que puede resultar del proceso de desarrollar un videojuego en cualquier formato es poder hacer que cada uno de los objetos se muevan. El movimiento es una de las características fundamentales de los videojuegos en formato 2D. Por eso, para que continúes con el desarrollo de videojuegos, te presentamos los pasos para saber cómo mover objetos con Pygame en Python.

Cómo mover objetos con Pygame en Python

Para empezar a entender cómo mover un objeto en Pygame, es clave que hayas instanciado la clase del objeto que queremos mover en nuestro videojuego. A este le habremos pintado una posición inicial desde el establecimiento del constructor. Entonces, ahora queda integrar un método a la clase que hemos instanciado. Este método será el que nos permitirá mover el objeto.

Para mover un objeto, debemos conocer a qué lado queremos dirigir el mismo y qué evento queremos integrar para que realice la acción. El evento puede ser pulsar una tecla o dar doble clic con el ratón.

Cuando tengas claro estos movimientos, deberás definir el método en la clase del objeto que quieres mover y, además, adecuar un evento en el bucle principal del programa. A su vez, deberás integrar métodos que dejen ver el movimiento que se efectúe. Estos pueden ser métodos de tipo fill, para limpiar nuestra pantalla, entre otras cosas.

Cuando pensamos en los movimientos que deben imprimir los objetos de un videojuego, hay que pensar en lo práctico que sea en el momento de jugar, el número de jugadores y el fin último del mismo juego.

Pasos para mover una paleta de Pong con Pygame

En el proceso de cómo hacer una clase paleta para un juego pong en Python, nos ha faltado hacer que esta clase tenga un método para hacer que se mueva. Por tanto, a continuación te presentaremos una serie de pasos para aprender cómo mover objetos con Pygame para Pong.

  1. Una vez tengas las clases del juego establecida y estés ubicado en la clase paleta del videojuego Pong, deberás definir el método que quieres introducir en el objeto, así como los parámetros que deben interactuar en el movimiento del objeto. Estos son velocidad, teclas para pulsar…
  2. Primero definirás la velocidad a la que se moverán cada uno de los objetos; en este caso, pondremos un valor de 20. Esto también se añadirá en el constructor de la clase paleta como self.velocidad.
  3. Ahora, en ese mismo constructor, deberá añadir los parámetros de subir y bajar que se realizan con las teclas. Deberás establecerlos con self. De esta manera, self.tecla_subir para subir y self.tecla_bajar para bajar. A su vez, deberás modificar el método «muévete». En este caso, las teclas se moverán por la coordenada y, por eso, para subir, utilizarás el – y, para bajar, utilizarás el signo +.
  4. Después, tendrás que definir estos eventos en el bucle principal de la siguiente manera: self.jugador1_muevete (evento.key) y self.jugador2_muevete (evento.key). Deberás tener en cuenta que necesitarás borrar esta posición cada vez que suceda el bucle, para esto utilizarás self.pantalla.fill ((0, 0, 0)).
  5. Por último, en la definición de las características de ambas paletas, tienes que agregar de qué forma las teclas moverán el objeto. Esto se hace estableciendo qué letra pulsarás para subir el objeto o para bajarlo. Hazlo con ambas paletas.

#dentro de la definición de clase Pong

🔴 ¿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 semana

VELOCIDAD = 20

#dentro de la definición del constructor de la clase paleta

class Paleta (pygame.Rect):

def_init_ (self, subir, bajar, *args, **kwargs) 

supper (Paleta, self).__init__ ( *args, **kwargs)

self.tecla_subir = subir

self.tecla_bajar = bajar

self.velocidad = velocidad

#dentro de la definición del método muévete dentro de la clase

def muevete (self, key)

if key == self.tecla_subir:

self.y -= self.velocidad

elif key == pygame.tecla_bajar:

self.y += self.velocidad

#dentro de la definición del bucle principal

def bucle_principal (self):

while True:

for evento in pygame.event.get ( ):

if evento.type == pygame.KEYDOWN:

if evento.key == pygame.K_ESCAPE:

return

else:

self.jugador1_muevete (evento.key)

self.jugador2_muevete (evento.key)

self.pantalla.fill ((0, 0, 0))

#dentro de las definiciones de ambas paletas

#para el jugador uno

self.jugador1 = Paleta(

pygame.K_a,

pygame.K_z,

self._VELOCIDAD,

0, self._ALTO / 2- self._PALETA_ALTO / 2

self._PALETA_ANCHO
self._PALETA_ALTO)

#para el jugador 2

self.jugador2 = Paleta(

pygame.K_UP,

pygame.K_DOWN,

self._VELOCIDAD,

self._ANCHO-self._PALETA_ANCHO,
self._ALTO / 2- self._PALETA_ALTO / 2

self._PALETA_ANCHO
self._PALETA_ALTO)

De esta manera ya sabes cómo mover objetos con Pygame en Python.

Sigue practicando con Pygame y Python

Si bien ya sabes cómo mover objetos con Pygame en Python y, además, lo has integrado con otros pasos para programar un videojuego de formato 2D, deberás seguir realizando otros ejercicios prácticos para afianzar tus habilidades con la librería de Python.

Si quieres seguir practicando con herramientas de programación con la guía de un profesional, visita nuestro Bootcamp Aprende a Programar desde Cero. ¡Apúntate!

[email protected]

¿Sabías que hay más de 40.000 vacantes para desarrolladores web sin cubrir en España? 

En KeepCoding llevamos desde 2012 guiando personas como tú a áreas de alta empleabilidad y alto potencial de crecimiento en IT con formación de máxima calidad.

 

Porque creemos que un buen trabajo es fuente de libertad, independencia, crecimiento y eso ¡cambia historias de vida!


¡Da el primer paso!