Pilas es un Framework para realizar juegos, el objetivo no es que sean expertos en vídeo juegos sino dar al alumno la posibilidad de aprender a programar utilizando herramientas libres y lenguajes de programación que permitan motivarlo sin que piense específicamente las áreas especificas que esta abarca como pueden ser :
* Paradigmas de programación procedural. * Paradigmas de programación orientada a objetos. * Cálculos matemáticos. * Geometría. * Física. * Llamadas al sistema.
Con lo cual el alumno sólo tiene un objetivo aprender.
* Python-qt4. * Python-opengl. * Python-sphinx. * Python-setuptools. * Python-box2d. * Python-pygame. * Mercurial(Para descarga Pila desde los repositorios).
#apt-get install python-qt4 python-opengl python-sphinx python-setuptools python-box2d python-pygame
$hg clone http://bitbucket.org/hugoruscitti/pilas
# cd pilas # python setup.py install
Si en lugar de instalar la versión estable queremos probar la versión develop
# python setup.py develop
En la carpeta pilas se encuentra una lista de personajes ya diseñados y ejemplos correspondiente.
Para probar si funciona después de toda la instalación escribimos como usuario python para ir a la consola:
Si logramos esta parte ya tendremos pilas listo para ser utilizado.
Creamos un persona x y asignamos una imagen:
* imagen = pilas.imagenes.cargar("neptuno1.jpg") * neptuno = pilas.actores.Actor(imagen)
vemos como funciona un simple actor:
Vamos a crear un menú de presentación bien simple:
Extracción del manual:
import pilas pilas.iniciar() ---> necesario para toda aplicación de pilas pilas.fondos.Pasto() ? clase invocada para cambiar la escena fondo del menu def iniciar_juego(): ? metodo que invoca ?inciar? print "Tengo que iniciar el juego" def salir_del_juego(): ? metodo q imprimi salir print "Tengo que salir..." pilas.actores.Menu( ? principalmente necesitamos esta sección para invocar a la creación [ (?iniciar juego?, iniciar_juego), (?salir?, salir_del_juego), ]) pilas.ejecutar() ? necesario para lanzar
es así como en base a este ejemplo diseñamos el menú para Lihuen y añadimos un juego de física donde un actor Lihuen tiene las propiedades de una caja y un actor Windows7 las propiedades de una pelota.
import sys import pilas from pilas.escenas import Normal pilas.iniciar() class EscenaDeMenu(Normal): def __init__(self): Normal.__init__(self) pilas.fondos.Lihuen() opciones = [ ('Iniciar menu Lihuen Edu', self.comenzar), ('Salir', self.salir)] self.menu = pilas.actores.Menu(opciones) def comenzar(self): pilas.mundo.definir_escena(EscenaDeJuego()) def salir(self): import sys sys.exit(0) class EscenaDeJuego(Normal): def __init__(self): Normal.__init__(self) pilas.actores.CursorMano() pilas.fondos.Lihuen() lihuen = pilas.actores.Lihuen() * 10 lihuen.aprender(pilas.habilidades.Arrastrable) windows = pilas.actores.Windows7() * 10 windows.aprender(pilas.habilidades.Arrastrable) pilas.avisar("Use el puntero del mouse para arrastrar las figuras.") pilas.eventos.pulsa_tecla.conectar(self.cuando_pulsa_tecla) def cuando_pulsa_tecla(self, evento): if evento.texto == u'q': pilas.mundo.definir_escena(EscenaDeMenu()) pilas.mundo.definir_escena(EscenaDeMenu()) pilas.ejecutar()
Para llevar al cabo algunas de estas tareas es necesario editar un poco algunos archivos para que el framework levante todo la aplicación sin problemas.
Empecemos:
* Escribir las clases necesarias. * Agregar las clases creadas en los directorios correctos. * Agregar la importación de las clases. * Reescribir el código necesario para el funcionamiento. * Importar los archivos necesarios.
En el directorio pilas/pilas/actores agregamos las clases necesarias:
Las imágenes para los actores pilas/pilas/data luego necesitamos editar __init__.py en actores para que el framework las reconozca entonces agregamos
from lihuen import Lihuen from windows7 import Windows7
hacemos lo mismo para fondos
vemos que agregamos un fondo llamado Lihuen, las imágenes para fondos deben ir en pilas/pilas/data/fondos.
luego se subirá un ejemplo en python y un vídeo demostración del mismo.
Todo lo realizado aquí ha sido a partir de la guía didáctica de los desarrolladores de pile-engine.