Python es conocido como uno de los lenguajes de programación más flexibles y fáciles para principiantes. Pero aunque Python tiene una experiencia de incorporación fantástica incluso para los nuevos programadores menos experimentados, en realidad más confunden para tratarlo de alguna otra manera. Python es tan flexible que no está claro de inmediato qué puede hacer con él.
Puedes leer muchos tutoriales, por ejemplo, y aún no entender cómo hacer un juego en Python o cómo construir una aplicación web. En esta publicación, discutiremos cómo hacer un juego muy simple en Python usando Pygame, la popular selección de módulos diseñados para facilitar la creación de juegos simples.
¿Qué es Pygame?
Algo que los nuevos desarrolladores pueden encontrar difícil de entender es que los lenguajes de programación rara vez existen en el vacío. Cuando crea una aplicación para Android, por ejemplo, no solo tendrá que usar Java o Kotlin (los dos principales lenguajes de programación compatibles con Google) sino también el SDK de Android. Este es el “kit de desarrollo de software” y contiene varias bibliotecas, clases y herramientas diferentes que hacen que el código Java funcione en Android y le da acceso a las características exclusivas de las plataformas móviles.
Lo mismo ocurre con Python. Aprender Python no es suficiente para comenzar a construir cosas en su mayor parte: necesita código adicional proporcionado por otros desarrolladores para que esos programas funcionen. En Python, estas herramientas externas generalmente toman la forma de “módulos”. Estos son pequeños programas de Python que realizan funciones útiles para apoyar su producción.
Pygame es una de estas colecciones de módulos. Y como su nombre indica, Pygame ofrece muchas funciones útiles para el desarrollo de juegos. Esto significa cosas como dibujar gráficos en la pantalla y reproducir sonidos. Al proporcionar funciones ya preparadas como esta, Pygame puede ahorrarle a un desarrollador grandes cantidades de trabajo y simplificar el proceso. Por lo tanto, cuando preguntes cómo crear un juego en Python, ¡la mayoría de la gente te dirá que uses Pygame!
Habiendo dicho eso, aquellos acostumbrados a motores de juego más completos e IDEs como Unity pueden encontrar a Pygame un poco básico. ¡Aquí no encontrarás física incorporada o una elegante interfaz de arrastrar y soltar! Pero si bien esto puede aumentar la cantidad de trabajo para usted como desarrollador, también lo libera para usar su imaginación y abordar su proyecto de juego completamente desde cero.
(¡Esto es algo bueno, honesto!)
Pygame fue escrito por Pete Shinners y fue lanzado en 2000. Desde entonces ha sido un proyecto comunitario y actualmente se lanza bajo el software gratuito de código abierto GNU Lesser. Licencia publica general.
Cómo hacer un juego en Python – Un primer proyecto simple
Voy a revertir mi enfoque para este tutorial. En lugar de hablarte paso a paso sobre un juego, te daré el código y luego analizaremos cómo funciona todo.
Primero, asegúrate de haber leído nuestra introducción al código de Python:
Esto te familiarizará con lo básico para que puedas seguirlo.
También necesitará un IDE de Python o editor de código, que puede aprender aquí:
A continuación, pasará el siguiente código. Aquí hay uno que hice antes:
import pygame pygame.init () win = pygame.display.set_mode ((1280, 720)) pygame.display.set_caption ("Squarey") x = 100 y = 100 baddyX = 300 baddyY = 300 vel = 6 baddyVel = 4 run = True def drawGame (): win.fill ((0, 0, 0)) pygame.draw.rect (win, (0, 0, 255), (x, y, 20, 20)) pygame.draw.rect (win, (255, 0, 0), (baddyX, baddyY, 40, 40)) pygame.display.update () mientras corre: pygame.time.delay (100) si baddyX < x - 10: baddyX = baddyX + baddyVel drawGame() elif baddyX > x + 10: juego de dibujo () baddyX = baddyX - baddyVel elif baddyY < y - 10: baddyY = baddyY + baddyVel elif baddyY > y + 10: baddyY = baddyY - baddyVel otro: ejecutar = falso por evento en pygame.event.get (): if event.type == pygame.QUIT: ejecutar = falso teclas = pygame.key.get_pressed () si tecleas [pygame.K_LEFT]: x - = velocidad si las claves [pygame.K_RIGHT]: x + = velocidad si las claves [pygame.K_UP]: y - = velocidad si tecleas [pygame.K_DOWN]: y + = velocidad juego de dibujo () pygame.quit ()
Hit juega y deberías ser recibido con un juego que te permite controlar un cuadrado verde alrededor de la pantalla tratando de evadir un cuadrado rojo. ¡Son cosas electrizantes!
¿Qué hace todo esto?
¡Felicidades! ¡Acabas de aprender a hacer un juego en Python! Excepto que probablemente no sabes qué hace esto o por qué lo hicimos como lo hicimos. Así que vamos a examinarlo, ¿verdad? Esto probablemente ya estará en su computadora y probablemente vino por defecto con la instalación. Si no, puede instalarlo con pip. También necesitamos inicializar Pygame con pygame.init () . A continuación, creamos una ventana para ver nuestro juego. “Set_caption” nos permite asignar un título a nuestro juego, que se muestra en la parte superior de la ventana.
importación de pygame pygame.init () win = pygame.display.set_mode ((1280, 720)) pygame.display.set_caption ("Squarey")
En la siguiente sección, estamos definiendo un grupo de variables: coordenadas para nosotros y el malo, una velocidad para nosotros y el malo y un valor booleano (verdadero o falso) que nos dice si el juego está funcionando o no .
x = 100 y = 100 baddyX = 300 baddyY = 300 vel = 6 baddyVel = 4 run = True
Hay una pequeña función llamada drawGame () . Aquí, primero, llenamos la pantalla con un color blanco (negro). De esta forma podemos mover la posición de nuestros personajes sin dejar rastro. Otra opción sería dibujar los caracteres sobre ellos en negro.
Esto es seguido por el dibujo de los dos cuadrados. Los estamos colocando dentro de la ventana, proporcionándoles códigos de color RGB, y luego configurando las coordenadas X e Y antes de agregar ancho y alto. Recuerde: ¡a lo largo del pasillo y bajando las escaleras! ¡Pensé que tenía sentido hacer que nuestro villano fuera un poco más grande que el buen chico y hacerlo terriblemente rojo!
Finalmente, llamamos pygame.display.update () para que estos elementos se dibujen en la pantalla.
def drawGame (): win.fill ((0, 0, 0)) pygame.draw.rect (win, (0, 0, 255), (x, y, 20, 20)) pygame.draw.rect (win, (255, 0, 0), (baddyX, baddyY, 40, 40)) pygame.display.update ()
Si no está seguro de qué es una función, eche un vistazo a este pequeño y elegante tutorial:
Cómo crear un bucle de juego en Python
La siguiente parte del código es donde ocurre la verdad divertido. Esta es la “placa de caldera” que probablemente verá en muchas creaciones de Pygame. En esencia, este es un ciclo que continuará repitiéndose hasta que el valor de run se establezca en True.
La primera línea de este bucle agrega un breve retraso. De hecho, esto es lo que establecerá nuestro “framerate” y evitará que todo suceda demasiado rápido como para permitirnos incluso verlo.
pygame.time.delay (100)
Básicamente, todo lo que queremos que suceda repetidamente se repetirá. Lo primero que estamos poniendo aquí es un código que define el comportamiento de nuestro villano. Esto usa if y elif (si no, if) para controlar el flujo del código. Si el valor de las coordenadas del jugador es mayor que las coordenadas del villano, entonces el villano se moverá para cambiarlo: acercándose a nuestra posición. Dado que nuestros personajes se mueven unos pocos píxeles a la vez (como lo definen las variables vel y baddyVel ), agregué un poco de espacio para el error.
se baddyX < x - 10: baddyX = baddyX + baddyVel drawGame() elif baddyX > x + 10: juego de dibujo () baddyX = baddyX - baddyVel elif baddyY < y - 10: baddyY = baddyY + baddyVel elif baddyY > y + 10: baddyY = baddyY - baddyVel otro: ejecutar = falso
Sin embargo, si las coordenadas están dentro de los 10 píxeles de nuestro jugador, ¡entonces el juego ha terminado! run se establece en False y el programa sale del ciclo. La declaración final que sigue al ciclo deja el juego.
Es un poco feo de todos modos, ya que las coordenadas establecen la esquina superior izquierda del cuadrado, no el centro. Esto significa que la detección de colisiones es extremadamente inestable, y si realmente estuvieras jugando un juego, debes hacer algunos cálculos para asegurarte de que el juego termine si los personajes se tocan entre sí por completo.
Observe cómo cada vez que el villano cambia de posición, llamamos a drawGame () y actualizamos el lienzo.
Finalmente, necesitamos obtener la entrada del jugador y mover el personaje del jugador basado en esto. Afortunadamente, Pygame hace que todo sea muy simple:
para el evento en pygame.event.get (): if event.type == pygame.QUIT: ejecutar = falso teclas = pygame.key.get_pressed () si tecleas [pygame.K_LEFT]: x - = velocidad si las claves [pygame.K_RIGHT]: x + = velocidad si las claves [pygame.K_UP]: y - = velocidad si tecleas [pygame.K_DOWN]: y + = velocidad drawGame ()
Como puede haber recogido, la primera parte de este código también permite que el jugador salga haciendo clic en el botón cruzado.
¡Al final, dejamos el juego una vez que termina el ciclo!
Esto es lo que nos queda:
No es exactamente Cyberpunk 2077 ¡pero al menos está terminado! #burn
A dónde ir desde aquí
¡Ahora sabes cómo hacer un juego en Python! Al menos sabes cómo hacer cuadrados en movimiento en una pantalla … Pero con suerte, eso es suficiente para darte una idea de cómo Pygame puede extender las capacidades de Python vainilla. ¡El resto es solo una cuestión de aprender las habilidades necesarias para agregar funciones adicionales, hasta que tenga algo con lo que esté satisfecho! Vea la documentación oficial aquí.
O, si desea acelerar su desarrollo y aprender habilidades comercializables, ¿por qué no tomar un curso en línea? Esta es la forma más rápida de aprender Python correctamente y también tenemos una guía práctica para los mejores cursos de Python en línea. Pruebe Codificación con Python: Capacitación para desarrolladores aspirantes por solo $ 49.99. Date prisa, ya que el curso vale alrededor de $ 700.