Posteado por: Daniel Fuentes B. en: marzo 23, 2010
Hace tiempo que quería escribir una entrada sobre el uso de pygame para programar juegos. Así que ahora voy a hacerlo en una serie de entradas sobre este tema (aun no estoy seguro de cuantas serán), por lo que esta servirá de introducción e índice (o sea la Parte 1 de este tutorial).
Primero, ¿que es pygame?
Lo primero que hay que pygame es una biblioteca multimedia (que trabaja sobre las librerías SDL) que permiten la creación de videojuegos en dos dimensiones de una manera sencilla.
Las SDL (Simple DirectMedia Layer) son un conjunto de bibliotecas que proporcionan funciones básicas para realizar operaciones de dibujado 2D, gestión de efectos de sonido, música, carga y gestión de imágenes (y son importantes ya que pygame trabaja sobre ellas). Básicamente es una librería similar a OpenGL o DirectX (solo en la parte 2D), diseñada para ser más fácil de usar que estas otras (además OpenGL solo se encarga de la parte gráfica, en cambio SDL incluye otras cosas como son los sonidos
)
Tal como les dije anteriormente usando pygame vamos a programar algunos videojuegos. No esperen programar un juego inmenso en 3D con gráficas espectaculares y que necesite equipos potentes para ser usado. Mas bien lo que vamos a obtener son juegos en 2D similares a los de consolas como supernintendo, portátiles como el GBA, nintendoDS (sin la parte táctil), etc. Para que se hagan una idea de como son los juegos programados con pygame, algunos juegos como frets on fire, SolarWolf o pydance usan pygame para su desarrollo. Pueden encontrar mas ejemplos en el sitio de pygame
Volviendo al tema Pygame se encarga de manejar la parte más complicada dentro de la programación de un videojuego, o se se encarga de cargar y mostrar las imágenes (en formatos como PNG, BMP, PCX, TGA,…), sonido (formatos OGG, MP3, MIDI,…), vídeos, las ventanas del juego y monitoriza los dispositivos de entrada (como mouse, teclado y joystick) de una manera bastante sencilla. Por lo que básicamente uno se tiene que preocupar por la programación del juego en si
Requisitos previos (recomendados)
Primeros pasos
Lo primero hay que hay que hacer es importar el modulo de pygame, lo cual se hace simplemente como:
import pygame from pygame.locals import *
La segunda linea es opcional (pero muy recomendada), ya se utiliza para importar una serie de constantes que tiene pygame (como las teclas del teclado)
Ahora en general nuestro código en pygame tendrá una estructura como esta:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Importacion de los módulos
import pygame
from pygame.locals import *
# y cualquier otro modulo usado
# ----------------------------------------------
# Constantes, como anchos y largo de pantalla, etc.
# ----------------------------------------------
# ----------------------------------------------
# Clases y Funciones utilizadas (lo explicare en la siguiente parte)
# ----------------------------------------------
def main():
pygame.init()
# La clase o función principal que crea o ejecuta el juego
# Contiene principalmente loop del juego (el alma de este)
if __name__ == "__main__":
main()
Si te fijas en la linea 18 se hace un pygame.init(), esto es para que se inicie pygame y es necesario ejecutarlo antes de empezar a usar pygame (por eso fue incluido al inicio de la función principal del juego). Si no te gusta incluir el pygame.init() en la función del juego, otro buen lugar es incluirlo inmediatamente después del if __name__ == “__main__”: (antes de llamar a la función main())
¿Y ahora que?
Continua leyendo las siguientes entradas sobre el tema, en donde se explica como crear ventanas, personajes, insertar sonidos, etc. Que son las siguientes:
Parte 2: Creando una ventana, cargando imágenes y moviéndolas al interior de la ventana: En esta segunda parte veremos:
Parte 3: Creando un videojuego (el clasico pong): En esta parte veremos:
Parte 4: manejando texto: El nombre lo dice todo, una explicación de como mostrar texto en pantalla.
Referencias:
Principalmente la documentación de pygame, que esta traducida en loserjuegos o si quieren una copia de esta traducción en un pdf (para consultar off-line)
Si alguien quiere el código de los ejemplos, este esta en github: http://github.com/dbfuentes/tutorial-pygame
[...] Ok, es tiempo de continuar con esta serie de tutoriales de pygame. Si recuerdan en el tutorial anterior cargamos unas imágenes y las mostramos en pantalla, haciendo [...]
Python es la leche. Soy informatico y nunca he conocido nada como esto. Además, cosas como estas te hacen divertirte en tu casa haciendo cosas que te aportan algo a tu vida.
Muchas gracias por el tutorial y sigue así. NO LO DEJES.
[...] En esta parte del tutorial se va a simular el lanzamiento de un proyectil (una esfera), para mostrar las siguientes [...]
Hola Daniel!
Soy Alan Chavez y yo tambien soy el administrador de un blog que acabo de empezar en donde publicare cosas de programacion en general, principalmente enfocado al area de programacion de videojuegos, pero sin olvidar otras areas importantes.
Voy arrancando, tengo menos de un mes y he empezado a poner tutoriales, y me he puesto el proposito de publicar almenos dos por semana.
El motivo de este mensaje para ofrecerte una colaboracion mutua, mediante el intercambio de links. Publique mi primera entrada hace un mes, pero no le di promocion, pero las ultimas tres entradas las publique hace unos dias y ya mi blog pasa las 100 visitas, creo que eso es una buena senal y he estado recibiendo alrededor de 20 visitas por dia de distintas partes del mundo.
Si estas interesado en el intercambio de links, por favor comunicate conmigo, y por mi parte me comprometo a escribir un articulo acerca de tu pagina web, poner un link en la pagina principal e invitar a mis visitantes que visiten tambien tu web. Mi pagina web no tiene ningun tipo de publicidad, y puedes ver la calidad del contenido que he puesto visitandola, estoy seguro que no te arrepentiras.
Por mi parte es todo, y te deseo una feliz navidad y un bonito fin de ano.
Alan Chavez.
1 | Tutorial Pygame 2: creando una ventana e imagenes « Python Mania
marzo 25, 2010 a 9:54 am
[...] Tutoriales Tutorial pygame 1: introducción a la programacion de videojuegos [...]