0% encontró este documento útil (0 votos)
185 vistas20 páginas

PYGAME

Este documento describe Pygame, un framework de Python para crear videojuegos de dos dimensiones. Explica cómo instalar Pygame e introduce conceptos clave como superficies, sprites, grupos y rectángulos. También incluye un ejemplo de código para crear un juego simple que muestra una pelota en movimiento rebotando en los bordes de la pantalla.

Cargado por

DiegoAsqui
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
185 vistas20 páginas

PYGAME

Este documento describe Pygame, un framework de Python para crear videojuegos de dos dimensiones. Explica cómo instalar Pygame e introduce conceptos clave como superficies, sprites, grupos y rectángulos. También incluye un ejemplo de código para crear un juego simple que muestra una pelota en movimiento rebotando en los bordes de la pantalla.

Cargado por

DiegoAsqui
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 20

PYGAME

Por: Luis Morocho


Contenido:

INSTALACIÓN

MARCO TEÓRICO

EJEMPLO

EJERCICIO
Instalación para
windows
• Utilice python 3.7.7 o superior, porque es mucho más amigable, y
además se ejecuta más rápido.
• La mejor manera de instalar pygame es con la herramienta pip (que
es lo que Python utiliza para instalar paquetes).
pip install pygame
• Usamos la marca --user para indicarle que se instale en el directorio
principal, en lugar de globalmente.
py -m pip install -U pygame --user
• Para ver si funciona, ejecute uno de los ejemplos incluidos:
py -m pygame.examples.aliens
• Si obtiene 'PermissionError: [WinError 5] Se deniega el acceso',
antes de iniciar el símbolo del sistema, haga clic con el botón
derecho y "Ejecutar como administrador".
(pygame, 2020)
Es un conjunto de módulos del lenguaje Python que permite la
creación de videojuegos en dos dimensiones de una manera
sencilla. Esta orientado al manejo de sprites. (Wikipedia, 2020)
Además, es un marco que permite una fácil manipulación de
elementos comunes del juego como:
Marco teórico • Fondos
• Sprites
• Acciones y Movimientos

¿Que es pygame? • Sonidos y Música


• Manejo de eventos
Sprite: Es una imagen bidimensional que forma parte de una
escena grafica aun mayor. Habitualmente es cierto tipo de
objeto que interactúa, por ejemplo, un coche, una rana etc.
(Vincent Craven, 2017)
Servicios principales

Visualización Superficie Sprite Grupo

Rect Mezclador Pygame


Visualización(Display)

Visualización es lo que se ve y la
llamada real para mostrar la imagen
en la pantalla
• Init
Inicializa las variables de visualización
• Flip
Reemplaza la pantalla actual por el
búfer de pantalla apagado
Superficies(Surface)

• Surface es uno de los servicios principales con


los que interactúas cuando usas pygame.
• Surface se utiliza para representar una imagen
o combinación de imágenes en la pantalla
Sprite

• Sprite también se utiliza a menudo en el


desarrollo de juegos para representar a los
actores
• Es una clase base para representar objetos de
juego
• Viene con un gran conjunto de métodos
incorporados que se encargan de las
interacciones comunes con el entorno del juego
Grupo(Group)

• Group es una clase


contenedora para sprites.
• Es muy útil para manipular
grandes conjuntos de sprites
• Definirá comportamientos
más específicos para grupos
de sprites
Rect

• Rect es la representación de nivel inferior de


objetos como sprites.
• Define y controla áreas específicas en las
pantallas
Mezclador(Mixer)
• Mixer es la forma en que el programador
implementa efectos de sonido y música
dentro del juego.
• Tiene todos los métodos utilizados para
controlar los sonidos en el juego.
Pygame

• Pygame básicamente sólo se


utiliza para el método Init()
que inicializa todos los
módulos pygame importados.
• También es capaz de manejar
errores.
Conceptos principales

• Pygame es el paquete de
nivel superior que es roto por
varios submódulos que
realizan los diversos servicios
• Rect y Surface son ejemplos
de clases que crean estos
submódulos
• Hay varias clases como
Display e Image y Font que
crean submódulos de los
submódulos de nivel
inferior como Rect y Surface
• Ejemplo de construcción de un
juego usando el framework
Pygame
(Stout, Meador, Seeland, & Robinson, 2020)
cdrom Reproducción
Descripción cursors cargar imágenes del cursor, incluye cursores estándar
display controlar la ventana de visualización o la pantalla
general de los draw dibujar formas simples en una superficie
módulos de event gestionar los eventos y la cola de eventos
Pygame font crear y renderizar fuentes TrueType
image guardar y cargar imágenes
joystick gestionar dispositivos joystick
key gestionar el teclado
mouse gestionar el ratón
sndarray manipular sonidos con numpy
surfarray manipular imágenes con numpy
time tiempo de control
transform escalar, rotar y voltear imágenes
Ejemplo: Realizar un programa usando pygame que muestre una pelota
en movimiento y que rebote en los perímetros de la pantalla.

Primera parte import sys, pygame


# Inicializamos pygame
• Esta sección cuenta con los siguientes pasos pygame.init()
# Muestro una ventana de 800x600
• Importamos la librería size = 800, 600
screen = pygame.display.set_mode(size)
• Inicializamos el motor del juego # Cambio el título de la ventana
pygame.display.set_caption("Juego BALL")
• Creamos una ventana de 800x600 # Comenzamos el bucle del juego
run=True
• Colocamos la etiqueta “Juego BALL” a la ventana
while run:
• Capturamos los eventos # Capturamos los eventos que se han producido
for event in pygame.event.get():
Todos los juegos tienen normalmente la misma estructura, es decir, un # Si el evento es salir de la ventana, terminamos
juego es un bucle infinito dónde se van obteniendo los eventos, que if event.type == pygame.QUIT: run = False
pueden ser las pulsaciones de teclas o las pulsaciones y movimientos del # Salgo de pygame
pygame.quit()
ratón, y según el evento que se vaya produciendo se va a provocar una
operación u otra.
En esta primera versión del juego el único evento que vamos a recoger
es el evento QUIT, que es el evento que se produce cuando le damos al
botón cerrar de la ventana. En ese caso terminaría el bucle y terminaría
el programa.
Segunda parte:
import sys, pygame
# Inicializamos pygame
pygame.init()
# Muestro una ventana de 800x600
• Después de crear la ventana inicializamos una serie de variables, anchura, altura y size = 800, 600
velocidad. Velocidad es una lista, porque es el número de coordenadas X e Y que screen = pygame.display.set_mode(size)
se va a mover nuestro objeto. # Cambio el título de la ventana
pygame.display.set_caption("Juego BALL")
• Definimos un color # Inicializamos variables
width, height = 800, 600
• Creamos un objeto “ball” a partir de una imagen que tenemos de una pelota speed = [1, 1]
white = 255, 255, 255
• Vamos a obtener el rectángulo de la imagen, que nos va a servir para mover la # Crea un objeto imagen y obtengo su rectángulo
imagen o para ver si la imagen colisiona con algún elemento de la ventana ball = pygame.image.load("ball.png")
ballrect = ball.get_rect()
# Comenzamos el bucle del juego
• Dentro del bucle hemos añadido un delay y así esperar 2 milisegundos, para que la
run=True
velocidad con la que se va a mover la pelota no sea muy rápida while run:
# Espero un tiempo (milisegundos) para que la pelota no vaya muy rápida
• Capturamos los eventos, como en la versión anterior, pero en esta ocasión vamos pygame.time.delay(2)
a mover la bola a la velocidad que hemos indicado # Capturamos los eventos que se han producido
for event in pygame.event.get():
• Además, vamos a comprobar si la pelota, el rectángulo, toca uno de los laterales #Si el evento es salir de la ventana, terminamos
de la ventana, entonces cambiamos la dirección de movimiento de la coordenada if event.type == pygame.QUIT: run = False
X o la dirección de movimiento de la coordenada Y. # Muevo la pelota
ballrect = ballrect.move(speed)
• Por último, actualizamos la ventana, para que se vea cómo la pelota se mueve if ballrect.left < 0 or ballrect.right > width:
alrededor de la ventana. speed[0] = -speed[0]
if ballrect.top < 0 or ballrect.bottom > height:
• Si cambiamos el valor del delay a 1 la pelota se mueve más rápidamente. speed[1] = -speed[1]
#Pinto el fondo de blanco, dibujo la pelota y actualizo la pantalla
screen.fill(white)
• (Domingo Muñoz, 2019)
screen.blit(ball, ballrect)
pygame.display.flip()
# Salgo de pygame
pygame.quit()
En este ejercicio deberá añadir lo siguiente:
Ejercicio: Agregar un • Crear el bate desde una imagen

bate al programa # Crea un objeto imagen bate y obtengo su rectángulo


bate = pygame.image.load("bate.png")
baterect = bate.get_rect()
anterior para que # Pongo el bate en el centro de la pantalla
baterect.move_ip(400, 260)
rebote la pelota • Capturamos las pulsaciones de las teclas, en este caso, las pulsaciones de la tecla arriba o la tecla
abajo, y eso permitira mover el bate hacia arriba o hacia abajo.
# Compruebo si se ha pulsado alguna tecla
keys = pygame.key.get_pressed()
if keys[pygame.K_UP]:
baterect=baterect.move(0, -1)
if keys[pygame.K_DOWN]:
baterect=baterect.move(0, 1)
• Comprobar si el bate colisiona con la pelota, y lo hace, cambiar el eje X de la pelota para que rebote.
# Compruebo si hay colisión
if baterect.colliderect(ballrect):
speed[0] = - speed[0]
• Al ejecutar el programa se debe poder mover el bate con las teclas de arriba y abajo, y si tocamos la
pelota con el bate va a rebotar.
# Dibujo bate
screen.blit(bate, baterect)
Bibliografía

• Domingo Muñoz, J. (4 de Febrero de 2019). Cómo hacer un juego con PYGAME en 10 minutos. Obtenido de
https://openwebinars.net/blog/como-hacer-un-juego-con-pygame-en-10-minutos/

• pygame. (1 de Enero de 2020). Pygame Installation. Obtenido de


https://www.pygame.org/wiki/GettingStarted#Pygame%20Installation

• Stout, R., Meador, J., Seeland, M., & Robinson, P. (1 de Enero de 2020). Pygame Framework. Obtenido de
https://www.cs.colorado.edu/~kena/classes/6448/f08/framework_presentations/pygame.pdf

• Vincent Craven, P. (1 de Enero de 2017). Programar Juegos Arcade con Python y Pygame. Obtenido de
http://programarcadegames.com/index.php?chapter=introduction_to_sprites&lang=es

• Wikipedia. (9 de Abril de 2020). Pygame. Obtenido de https://es.wikipedia.org/wiki/Pygame

También podría gustarte