Lihuen
RSSRSS AtomAtom

Programando con pilas

Pilas programando con python

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.

Características técnicas

  • Es multiplataforma (Funciona sobre GNU/Linux y Windows)
  • Cuenta con objetos prediseñados para agilizar el desarrollo.
  • Documentación completamente en español.
  • Se utiliza desde python, lo que permite usarla desde sesiones interactivas.
  • Incluye interacción con el motor de física pybox2d.
  • Es software libre.
  • Cuenta con varios ejemplos y tutoriales para ir paso a paso.

Paquetes necesarios para poder funcionar en Lihuen 4.01

* Python-qt4.
* Python-opengl.
* Python-sphinx.
* Python-setuptools.
* Python-box2d.
* Python-pygame.
* Mercurial(Para descarga Pila desde los repositorios).

Instalación

  • Como root instalamos los paquetes:
 #apt-get install python-qt4 python-opengl python-sphinx python-setuptools python-box2d python-pygame
  • Descargamos pila como usuario:

$hg clone http://bitbucket.org/hugoruscitti/pilas

  • Instalación
# 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:


Imagen1.png

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:

Imagen2-pila.png

Creando una aplicación simple

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.

  1. Permite mostrar un menú con pilas y luego ejecutar la aplicación ejemplo sistemas.
 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.


Agregar las clases creadas en los directorios correctos

En el directorio pilas/pilas/actores agregamos las clases necesarias:

Imagen3-pila.png


Imagen4-pila.png

Agregar la importación de las clases

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

Imagen5-pila.png



vemos que agregamos un fondo llamado Lihuen, las imágenes para fondos deben ir en pilas/pilas/data/fondos. Vídeo con el ejemplo mostrado anteriormente.

Todo lo realizado aquí ha sido a partir de la guía didáctica de los desarrolladores de pile-engine.

Enlaces de interés

Página oficial

Prototipo de prueba

Sitio para bajarse la última versión