Python Game Library

Pygame
Pygame

Fecha de creación:
2006
Versiones:
1.9.1
Sitio Web:
http://www.python.org/




Pygame(Python Game Library). Librería multiplataforma sobre SDL para Python para la implementacion de juegos y aplicaciones de multimedios en 2 dimensiones.

Con sus clases y módulos brinda soporte al desarrollador para importar, tratar y exportar imágenes en varios formatos, generación de gráficos y formas básicos, efectos de sonido, reproducción de audio de fondo y CDs, reproducción de video MPEG, tratamiento de eventos de ratón, joystick, teclado, tiempo y otras facilidades que permite rápidez y efectividad para el programador, especialmente si se trata de grupos o empresas pequeños, así como la garantía de soporte para varios sistemas operativos, sin cambios en el código fuente o en la versión compilada para la Máquina virtual de Python.


Pygame: Python + SDL

Extensiones para Python

Python es un lenguaje que viene con un amplio grupo de módulos o librerías en las distribuciones estándares, las cuales a su vez se han ido desarrollando tanto por sí mismas como adecuándose a la evolución del lenguaje. Este grupo de librerías "estándares" brindan soluciones a aspectos generales de aplicación, por lo general bajo el concepto de portabilidad sin cambios en el código fuente. Sin embargo, no pueden abarcar todo el espectro de problemas que pudieran aparecer o garantizar la totalidad de integración con otras aplicaciones o plataformas de desarrollo que existen o van apareciendo. Es por ello que otros grupos desarrollan módulos para el soporte de nuevas funcionalidades o para integrar otras tecnologías al lenguaje.


Hay que recordar que este lenguaje es de propósito general. Desde su creación en 1991, por Guido von Rossum, ha ido ganando constantemente aplicabilidad y por tanto, personas o grupos que producen librerías alternativas han ido generalizando sus soluciones hasta obtener robustos módulos que permiten a los desarrolladores soluciones ya predigeridas a las cuales solo hay que adaptar a una nueva situación particular.


Uno de esos terrenos es el procesamiento de imágenes 2D, donde para Python existe PIL (Python Imaging Library) que es independiente de plataforma y se usa tanto por particulares, centros universitarios y de investigación, como por ejemplo en una de las extensiones de Gimp, pero no es la única y la programación de juegos y multimedias donde destaca en el caso de aquellos que se hacen de forma plana la librería Pygame.


Interfaz de SDL

SDL es una librería GNU hecha para el tratamiento de gráficos y contenido multimedia, así como el control de dispositivos como video, teclado, mouse, unidad de CD/DVD, temporizador de la máquina, joystick, etc. Está fundamentalmente orientada a la implementación de juegos sencillos en 2D.


SDL es soportada sobre varias arquitecturas de hardware y varios SO, con una interfaz general hecha en C y algunas veces en ensamblador, por lo que normalmente una aplicación escrita para usar SDL encontrará muchos lugares para correr sin cambios en su código fuente.


En el caso de Pygame, éste le debe casi toda su funcionabilidad y características a SDL, eso sí con una serie de “pythonizaciones” que lo llevan a la altura de un lenguaje de alto nivel como lo es Python: clases, librerías modulares, manipulación de excepciones, documentación contextual, entre otras cosas.


La librería Pygame

Pygame es una librería de Python del tipo extensión, por lo que su versión se vuelca una vez recompilado sus componentes al directorio "site-packages" dentro de libs. Como parcticamente todas las librerías compuestas Python tiene una principal nombrada __init__.py a partir de la cual se vinculan las librerías de soporte de SDL y las propias.

Para el desarrollador el módulo se importa bajo el nombre pygame, a partir del cual se vinculan el resto de los módulos, tipos, constantes, clases y funciones.

En estos momentos se trabaja en las versiones de prueba de la 2.0, mientras la que está operativa es la 1.9.


Características

Pygame permite a los desarrolladores de Python:

  • La generación de ventanas gráficas o de pantalla completa con varios tamaños, modos y densidades.
  • Tratar la aplicación Pygame como una apliación de ventanas, donde en un ciclo central se manipula los eventos generados y se actualiza la interfaz gráfica.
  • Manipulación y generación de eventos de dispositivos y recursos de la máquina: tarjeta gráfica, teclado, mouse, temporizador, etc.
  • La importación, tratamiento y exportación de imágenes desde y hacia ficheros de imagen de formatos conocidos como JPEG, PNG, GIF, TGA, BMP, entre otros, contando el con un tipo propio englobado en la clase Surface. Esto implica algunos efectos de postprocesado (brillo, recoloración, transparencia, máscaras, ect), la deformación (rotación, ampliación y estrechamiento, volteo, entre otras), la obtención de partes de la superficie.
  • Generación de formas, lineas y puntos básicos.
  • La emisión de sonidos de efecto en ficheros OGG y WAV.
  • La reproducción de música de fondo con archivos OGG, MP3 y MID.
  • Reproducir videos MPEG1.
  • Sprites y control de colisiones.


Fuentes

  1. Sitio Oficial de la librería Pygame. http://www.pygame.org
  1. Sitio Oficial del lenguaje de programación Python. http://www.python.org
  1. Documentación de Pygame 1.9.1. http://www.pygame.org/docs