Programacion del tiempo (Animaciones y Acciones)

Si tienes alguna duda sobre cómo usar pilas, o tienes problemas para instalar o hacer algo en pilas comentalo aquí.

Programacion del tiempo (Animaciones y Acciones)

Notapor programx » Lun Ago 08, 2011 1:44 am

Buenas, esta vez vengo con mas dudas:

¿Como hago para programar la velocidad de avance de una animacion?, es decir, si quiero que pilas pase de un cuadro a otro de la grilla muy lentamente o rapidamente.

¿Existe en pilas un metodo como "cada_cierto_tiempo_hacer(accion, tiempo)? por ejemplo si quiero que una nave enemiga dispare todo el tiempo en intervalos de 4 segundos.

¿Existe una documentacion donde pueda ver ordenadamente todas las clases, metodos con sus paramentros y atributos de pilas?.

Eso es todo, Saludos :mrgreen:
Avatar de Usuario
programx
 
Mensajes: 34
Registrado: Mié Ago 03, 2011 4:46 am

Re: Programacion del tiempo (Animaciones y Acciones)

Notapor hugoruscitti » Mié Ago 10, 2011 1:24 am

programx escribió:Buenas, esta vez vengo con mas dudas:

¿Como hago para programar la velocidad de avance de una animacion?, es decir,
si quiero que pilas pase de un cuadro a otro de la grilla muy lentamente o
rapidamente.


Para animaciones podrías usar muchas estrategias
distintas, una de ellas es crear un actor
y escribirle el método ``update`` para poner la lógica
de la animación ahí:

import pilas

pilas.iniciar()

class ExplosionContinua(pilas.actores.Actor):

def __init__(self):
pilas.actores.Actor.__init__(self)
self.imagen = pilas.imagenes.cargar_grilla("explosion.png", 7)

def actualizar(self):
termina = self.imagen.avanzar()

if termina:
# si termina es True, significa que animacion termino...
pass


ExplosionContinua()
pilas.ejecutar()



Otra forma es hacer una función para cambiar el
cuadro de animación usando tareas (lo que te voy a contar
en la siguiente respuesta):


programx escribió:¿Existe en pilas un metodo como "cada_cierto_tiempo_hacer(accion, tiempo)? por
ejemplo si quiero que una nave enemiga dispare todo el tiempo en intervalos de
4 segundos.


Sí, existen varios métodos dentro del objeto Mundo
para crear llamadas a funciones con temporizadores.

Una de estas funciones es "agregar_tarea_siempre", a la
que le puedes dar una función y un indicador de tiempo
que tiene que llamar siempre.

Este código, por ejemplo, agrega un nuevo actor
en la escena cada dos segundos:

import pilas                                                                                     

pilas.iniciar()

def crear_pelota():
p = pilas.actores.Pelota()

pilas.mundo.agregar_tarea_siempre(2, crear_pelota)

pilas.ejecutar()




También hay otras funciones cómo: "agregar_tarea" y
"agregar_tarea_una_vez" que a diferencia de la primera, se
detienen.


programx escribió:¿Existe una documentacion donde pueda ver ordenadamente todas las clases,
metodos con sus paramentros y atributos de pilas?.

Eso es todo, Saludos :mrgreen:


m... no por el momento, solo tenemos una cartilla de referencias
reducida en la sección de documentación. Pero no está completa, es
solo para los primeros pasos.

http://bitbucket.org/hugoruscitti/pilas ... /pilas.pdf


Sería bueno tener un documento con todas las funciones de pilas a modo
de referencias, voy a tratar de hacer un script para eso el fin
de semana. Si tengo éxito lo anunciaré en el foro de anuncios.

¿Tienes algún documento así de otra biblioteca que me sirva de inspiración?
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Re: Programacion del tiempo (Animaciones y Acciones)

Notapor programx » Vie Ago 26, 2011 3:30 am

Gracias por responder!, y en cuanto a lo de la documentacion, bueno una doc que e visto bastante organizada y completa es la de rubygame:
http://docs.rubygame.org/rdoc/current/
aunque es un poco confusa. Por cierto, acabo de ver la doc que estas haciendo (http://www.pilas-engine.com.ar/doc/html/referencia.html) y me parece un muy buen trabajo :)
Avatar de Usuario
programx
 
Mensajes: 34
Registrado: Mié Ago 03, 2011 4:46 am


Volver a Consultas, problemas o bugs.

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 30 invitados