Actores
Los actores son una pieza clave de pilas, nos sirven para representar a los personajes dentro de videojuego, con sus propios atributos, apariencia y comportamiento.
Puedes utilizar los actores prediseñados de pilas, o crear tus propios actores. Existe una página separada del manual que explica como crear tus propios actores, en lugar de utilizar los incluidos en pilas.
Galería de actores incluídos
Hay varios actores pre-diseñados incluidos en pilas, podés usarlos siguiendo los ejemplos de esta página o adaptarlos para crear los tuyos propios:
- Actor
- Aceituna
- Animacion
- Animado
- Bala
- Banana
- ActorEliminadoException
- ActorEliminado
- Banana
- Bomba
- Boton
- Caja
- Calvo
- Controlador
- Cooperativista
- DeslizadorHorizontal
- Dialogo
- Dinamita
- DisparoLaser
- Ejes
- Emisor
- Energia
- Estrella
- EstrellaNinja
- Estudiante
- Explosion
- ExplosionDeHumo
- Fantasma
- Globo
- Grupo
- Humo
- ManejadorPropiedad
- Manzana
- Mapa
- MapaTiled
- Martian
- Maton
- MensajeError
- Menu
- Menu
- Misil
- Moneda
- Mono
- Municion
- Nave
- NaveKids
- NaveRoja
- Opcion
- Ovni
- Pacman
- Palo
- Particula
- Pelota
- Piedra
- Pingu
- Pizarra
- Planeta
- Puntaje
- Shaolin
- Sombra
- Sonido
- Temporizador
- Texto
- TextoInferior
- Tortuga
- Zanahoria
Actor
Representa un objeto visible en pantalla, algo que se ve y tiene la estructura inicial de actor
Un objeto Actor se tiene que crear siempre indicando una imagen. Si no se especifica una imagen, se verán los signos de interrogación de color rojo.
Una forma de crear el actor con una imagen es:
protagonista = pilas.actores.Actor(imagen="planeta_azul.png")
incluso, es equivalente hacer lo siguiente:
imagen = pilas.imagenes.cargar("planeta_azul.png")
protagonista = pilas.actores.Actor(imagen=imagen)
El resultado será:
Luego, una vez que ha sido ejecutada la sentencia aparecerá el nuevo actor para que puedas manipularlo. Por ejemplo alterando sus propiedades:
protagonista.x = 100
protagonista.escala = 2
protagonista.rotacion = 30
Estas propiedades también se pueden manipular mediante interpolaciones. Por ejemplo, para aumentar el tamaño del personaje de 1 a 5 en 7 segundos:
protagonista.escala = 1
protagonista.escala = [5], 7
Si quieres que el actor sea invisible, un truco es crearlo
con la imagen invisible.png
:
invisible = pilas.actores.Actor(imagen='invisible.png')
Aceituna
El actor aceituna es super simple
aceituna = pilas.actores.Aceituna()
Comportamientos:
aceituna.decir(mensaje)
Animacion
Representa una animación de una grilla de imágenes.
Este actor toma una grilla de cuadros de animación y los reproduce hasta que la animación termina. Cuando la animación termina se elimina a si mismo.
El constructor tiene algunos parámetros de utilidad:
- El parámetro
ciclica
permite hacer animaciones infinitas, que se repiten siempre, por defecto valeFalse
que significa que la animación terminará y no se repetirá. - El parámetro
velocidad
tiene que ser un número que indicará la cantidad de cuadros por segundo que se tienen que mostrar en la animación.
Por ejemplo, para mostrar una explosión infinita podrías escribir:
grilla = pilas.imagenes.cargar_grilla("explosion.png", 7)
animacion = pilas.actores.Animacion(grilla, ciclica=True, velocidad=1)
Comportamientos:
animacion.definir_velocidad_de_animacion(velocidad_de_animacion)
animacion.obtener_velocidad_de_animacion()
Animado
Representa un actor que tiene asociada una grilla con cuadros de animacion.
Una de las variantes que introduce este actor es el método 'definir_cuadro', que facilita la animación de personajes.
Por ejemplo, si tenemos una grilla con un pingüino, podríamos mostrarlo usando este código:
grilla = pilas.imagenes.cargar_grilla("pingu.png", 10)
actor = Animado(grilla)
actor.definir_cuadro(2)
actor.definir_cuadro(5)
Comportamientos:
actor.definir_cuadro(indice)
Bala
Representa un disparo que avanza en linea recta, con un ángulo de dirección y un sentido determinado.
bala = pilas.actores.Bala(rotacion=0, velocidad_maxima=9, angulo_de_movimiento=90)
y opcionalmente, si queremos que se llame a una función en el momento de eliminación del disparo podemos hacer así:
bala.cuando_se_elimina = funcion_a_invocar
Banana
Muestra una banana que se combina (temáticamente) con el actor Mono.
Este actor se podría usar cómo alimento o bonus para otros actores.
Este actor tiene solo dos cuadros de animación que se pueden
mostrar con los métodos abrir
y cerrar
:
banana = pilas.actores.Banana()
banana.abrir()
banana.cerrar()
Comportamientos:
banana.abrir()
banana.cerrar()
Bomba
Representa una bomba que puede explotar...
La bomba adquiere la habilidad explotar al momento de crearse, así que puedes invocar a su método "explotar" y la bomba hará un explosión en pantalla con sonido.
bomba = pilas.actores.Bomba()
bomba.explotar()
Comportamientos:
bomba.explotar()
Boton
Representa un boton que reacciona al ser presionado
Comportamientos:
boton.conectar_normal(funcion, argumentos...)
boton.conectar_presionado(funcion, argumentos...)
boton.activar()
boton.desactivar()
boton.desconectar_normal(function)
boton.desconectar_presionado(function)
Caja
Representa una caja que posee fisica.
Calvo
Representa un personaje de juego tipo RPG.
Cooperativista
Representa un Cooperativista que puede caminar y trabajar.
Comportamientos:
cooperativista.cambiar_animacion(nombre)
DeslizadorHorizontal
Comportamientos:
deslizador.conectar(function)
deslizador.desconectar(function)
Diálogo
Representa una secuencia de mensajes entre varios actores.
mono = pilas.actores.Mono()
mono2 = pilas.actores.Mono()
dialogo = pilas.actores.Dialogo()
dialogo.decir(mono, "Hola Mundo")
dialogo.decir(mono2, "Estoy diciendo algo")
dialogo.comenzar()
Comportamientos:
dialogo.decir(actor, mensaje)
dialogo.comenzar()
Dinamita
Una dinamita que puede explotar.
Comportamientos:
dinamita.explotar()
DisparoLaser
Muestra un disparo que avanza por la pantalla.
Este actor se podría usar como arma para juegos de naves generalmente. Por ejemplo, el actor NaveRoja dispara usando este actor como munición.
Emisor
...
Comportamientos:
..
Energia
...
Comportamientos:
..
Estrella
...
Comportamientos:
..
EstrellaNinja
...
Comportamientos:
..
Explosion
...
Comportamientos:
..
ExplosionDeHumo
...
Comportamientos:
..
Fantasma
...
Comportamientos:
..
ManejadorPropiedad
...
Comportamientos:
..
Manzana
...
Comportamientos:
..
Martian
...
Comportamientos:
..
Maton
...
Comportamientos:
..
Menu
...
Comportamientos:
..
Misil
...
Comportamientos:
..
Moneda
...
Comportamientos:
..
Mono
...
Comportamientos:
..
Nave
...
Comportamientos:
..
NaveKids
...
Comportamientos:
..
NaveRoja
...
Comportamientos:
..
Ovni
...
Comportamientos:
..
Pacman
...
Comportamientos:
..
Pelota
...
Comportamientos:
..
Piedra
...
Comportamientos:
..
Pingu
...
Comportamientos:
..
Pizarra
...
Comportamientos:
..
Planeta
...
Comportamientos:
..
Puntaje
...
Comportamientos:
..
Shaolin
...
Comportamientos:
..
Sombra
...
Comportamientos:
..
Texto
...
Comportamientos:
..
Tortuga
...
Comportamientos:
..
Zanahoria
...
Comportamientos:
..