Primer Juego con PyGame en Python – Tutorial

Primer Juego con PyGame en Python – Tutorial

En este Articulo veremos un Tutorial de como crear nuestro Primer Juego con PyGame en Python, realizaremos un juego que talvez no tenga mucho sentido, pero que sin duda nos adentrara en el proceso de desarrollo de futuros proyectos, abarcaremos temas como inicializacion de pygame, frecuencia de reloj (FPS), manejo de colores, carga de imagenes y su aparicion en el juego, carga de sonidos y su aparicion en el juego, carga de tipos de letra y su aparicion en el juego, sistema de coordenadas, dibujado de figuras simples, eventos de teclado y actualizacion de pantalla. El juego en si sera un ambiente donde un personaje tendra como mision llegar a la meta y el juego terminara. Asi que veamos como crear nuestro Primer Juego con PyGame en Python, Comencemos…

Requerimientos:

  • Python
  • PyGame
  • Archivos Necesarios (Enlace no disponible, aun así puedes seguir el tutorial. El archivo solo contenía imágenes y sonidos que podrías utilizar.)

Desarrollo

Para Comenzar a programar nuestro Primer Juego con PyGame en Python necesitaremos primeramente tener nuestro entorno correctamente configurado para lo cual te recomiendo leer los articulos mencionados el area de requerimientos, tambien necesitaras descargar el archivo comprimido que contiene las imagenes y sonidos para seguir al pie este articulo.
Vamos a crear nuestro archivo de codigo fuente, puedes usar cualquier editor de texto, y comenzaremos a escribir el codigo.


import pygame, sys
from pygame.locals import *

importamos los modulos necesarios para nuestro juego


pygame.init()

Inicializamos el modulo de pygame, necesario antes de empezar a utilizar cualquier cosa de PyGame


FPS = 30
frecuencia = pygame.time.Clock()

Creamos una variable con los fotogramas por segundo, y otra con la que modificaremos la frecuencia de reloj de nuestro juego


¿Sabías que?

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.

Udemy


PANTALLA = pygame.display.set_mode((800, 600),0,32)
pygame.display.set_caption('Primer Juego en Pygame!')

Creamos nuestro objeto para manejar la pantalla, establecemos la resolucion de pantalla y profundidad, establecemos tambien el titulo de ventana


CIELO = (0,255,255)
NUBE = (255,255,255)
SOL = (255,255,0)
ROJO = (255,0,0)

Establecemos variables para los colores que utilizaremos, utilizamos el modelo RGB para crear los colores


PERSONAJE = pygame.image.load("personaje.png")
ARBUSTO = pygame.image.load("arbusto.png")
META = pygame.image.load("meta.png")

Creamos variables que almacenaran las imagenes que queremos mostrar en nuestro juego, estas imagenes estan el el archivo comprimido que esta en requerimientos, estas son la imagen de nuestro personaje principal, una imagen de un arbusto que repetiremos algunas veces, la imagen de la meta.


PERSONAJEX = 20
PERSONAJEY = 460
ARBUSTOX = -100
ARBUSTOY = 450
METAX = 620
METAY = 470

Estas Variables definen la posicion inicial de nuestras imagenes que cargamos anteriormente, puedes observar que pertenecen a las coordenadas X y Y

Primer Juego con PyGame en Python 1


NUBE1_DIM = [100,50,200,100]
NUBE2_DIM = [300,100,200,100]

Estos objetos son rectangulos que nos ayudaran a dibujar algunas nubes, 2 para ser exactos, estos rectangulos definen la posicion inicial x,y asi como el ancho y alto de la nube(2do y 3er parametro)


aumX = 0
aumY = 0

Variables auxiliares utilizadas para mover nuestro personaje, las utilizaremos mas tarde


fontObject = pygame.font.Font("StripeAttack.ttf",40)
textSurfaceObject = fontObject.render("Primer Juego en PyGame",True,ROJO,CIELO)
textRectObject = textSurfaceObject.get_rect()
textRectObject.center = (200,30)

Ahora para mostrar un mensaje en nuestro juego con un tipo de letra, tamaño y color, vamos a crear un objeto con el tipo de letra (que debe estar en la misma carpeta que el archivo de codigo fuente) y el tamaño de fuente, escribimos el texto que sera mostrado asi como otros parametros que son: True, antialiasing para mejorar la calidad del texto, ROJO, el color principal del texto, CIELO, color de fondo de nuestro rectangulo que contiene el texto. Establecemos el centro de nuestro texto


fontObject2 = pygame.font.Font("StripeAttack.ttf",60)
textSurfaceObject2 = fontObject2.render("Has Ganado el Juego",True,ROJO,CIELO)
textRectObject2 = textSurfaceObject.get_rect()
textRectObject2.center = (400,300)

Ahora creamos otro similar solo que cambiara el tamaño del texto a 60, el mensaje y la posicion donde se mostrara, este sera el mensaje utilizado para mostrar al usuario cuando haya ganado el juego


pygame.mixer.music.load("Molinos_de_viento.mp3")
pygame.mixer.music.play(-1,0.0)

Ahora como todo juego no podia faltar el sonido, para esto nosotros utilizaremos una cancion de sonido de fondo, utilizamos los metodos de pygame music, cargamos primero escribiendo el nombre de la cancion, puede ser wav o mp3, recuerda que estos recursos externos tienen que estar en la misma carpeta que nuestro archivo fuente, establecemos -1 para indicar que unavez que termine vuelva a empezar.

Todo juego en pygame necesita un ciclo principal, que se estara repitiendo a lo largo de la ejecucion de nuestro juego, recuerda que en python la indentacion juega un papel muy importante, nuestro ciclo principal iniciara asi


while True: 
	PANTALLA.fill(CIELO)
	pygame.draw.circle(PANTALLA,SOL,(700,100),120,0)
	pygame.draw.ellipse(PANTALLA,NUBE,NUBE1_DIM,0)
	pygame.draw.ellipse(PANTALLA,NUBE,NUBE2_DIM,0)

Empezamos nuestro ciclo principal, utilizamos nuestro objeto pantalla que definimos antes para rellenar la pantalla de un color azul cielo que tambien hemos realizado ya, haremos uso de algunos metodos de pygame para dibujar figuras geometricas como el ellipse y el circulo, los cuales ocuparemos para crear un sol muy simple y un par de nubes, a estos metodos le pasaremos nuestro objeto pantalla, coordenadas y tamaños de figuras, en el caso de los ellipses pasaremos rectangulos.


PANTALLA.blit(ARBUSTO,(ARBUSTOX,ARBUSTOY))
PANTALLA.blit(ARBUSTO,(ARBUSTOX+200,ARBUSTOY))
PANTALLA.blit(ARBUSTO,(ARBUSTOX+340,ARBUSTOY))
PANTALLA.blit(ARBUSTO,(ARBUSTOX+500,ARBUSTOY))
PANTALLA.blit(ARBUSTO,(ARBUSTOX+660,ARBUSTOY))
PANTALLA.blit(META,(METAX,METAY))
PANTALLA.blit(PERSONAJE,(PERSONAJEX,PERSONAJEY))
PANTALLA.blit(textSurfaceObject,textRectObject)

Ahora mediante el metodo blit de nuestro objeto pantalla agregaremos elementos a nuestra pantalla, agregaremos algunos arbustos con el mismo objeto arbusto pero diferentes coordenadas, tambien agregaremos la imagen de meta mediante su objeto y sus coordenadas, agregamos nuestro personaje y por ultimos nuestro objeto de texto, el primero que creamos no el segundo.


PERSONAJEX = PERSONAJEX + aumX
PERSONAJEX = PERSONAJEX + aumX

En este par de lineas sumamos a las coordenadas de X de personaje, es decir a las de derecha/izquierda, el contenido de la variable aumX que mas adelante modificaremos segun si presionamos la tecla de derecha o izquierda de nuestro teclado, esto hara que nuestro personaje se mueva de izquierda a derecha, al modificar la posicion X


if PERSONAJEX >= 800:
	PANTALLA.blit(textSurfaceObject2,textRectObject2)

en este conficional comprobamos si las coordenadas de X de nuetro personaje sobrepasan los 800, tamaño que le dimos de largo a nuestro juego, si es asi significa que nuestro personaje se ha movido lo suficiente a la derecha que ya no es visible en la pantalla, lo que significa que ha cruzado la meta, entonces se mostrara el segundo mensaje de texto que dice que el jugador ha ganado


for event in pygame.event.get():
	if event.type == QUIT:
		pygame.mixer.music.stop()
		pygame.quit()
		sys.exit()
	elif event.type == pygame.KEYDOWN:
		if event.key == pygame.K_RIGHT:
			aumX = 5
		if event.key == pygame.K_LEFT:
			aumX = -5
	elif event.type == pygame.KEYUP:
		if event.key == pygame.K_RIGHT:
			aumX = 0
		if event.key == pygame.K_LEFT:
			aumX = 0

Aqui trateremos los eventos de nuestro juego, en esta ocacion solo ocuparemos el basico de QUIT para salir correctamente, y los de KEYDOWN Y KEYUP, para saber cuando se presione y se libere una tecla, en particular la tecla derecha (K_RIGHT) Y izquierda (K_LEFT) que son las que ocupamos para movernos de izquierda a derecha, al detectar este evento estableceremos el aumento en positivo 5 para derecha o negativo 5 para izquierda y cuando se suelte la tecla estableceremos el aumento en 0, esto es, sin movimiento.


pygame.display.update()

Con esta instruccion se actuliza la pantalla de nuestro juego


frecuencia.tick(FPS)

Establecemos la frecuencia de nuestro juego que fue de 30
Ejecutamos el juego y veremos nuestro primer juego con pygame en python, bastante dificil ehh 😉

Primer Juego con PyGame en Python jonathanmelgoza

Resultado

Visto – Primer Juego con PyGame en Python – Tutorial

Clic para valorar esta información
[Total: 0 Promedio: 0]