Uso correcto grilla?

Hola a todos, los molesto nuevamente, con una pregunta básica pero que no puedo saltear sólo
Cual seria el uso correcto de la grilla para darle una animación simple (dos cuadros) a un actor?
Probe con cambiar el self.imagen por animación, agregar la línea grilla pero siempre me tira error

class Actor(pilasengine.actores.Actor):
    def iniciar(self):
        sele.x = 150
        self.imagen = "imagenes/actor-1.png"
        self.y = self.pilas.azar(-230, 230)
        self.z = 2

Hola @Rober, en el manual hay un ejemplo super sencillo de cómo cargar una grilla:

http://manual.pilas-engine.com.ar/imagen/#grillas-de-imagenes

Avisanos si te resulta útil.

sigo trabado, quedaria asi?
o que estoy poniendo mal?
porque me deja la animacion en el centro (sin funcionar) y el actor en la posicion indicada, con su habilidad y todo pero sin la imagen (con los signos de preguntas rojos)

class Actor_1(pilasengine.actores.Actor):
    def iniciar(self):
        self.x = -375
        actor = pilas.actores.Actor()
        grilla = pilas.imagenes.cargar_grilla("imagenes/Actor_1.png", 2)
        actor.imagen = grilla
        self.aprender(pilas.habilidades.MoverseConElTeclado)
        self.figura_de_colision = pilas.fisica.Rectangulo(0, 0, 130, 40, sensor=True)

Buenas, @Rober

Te pongo un ejemplo de una animacion. Se trata de una antorcha llameante, cuya grilla consta de 9 cuadros.

En la EscenaJuego :

self.Antorcha_llameante = pilas.actores.Animacion(grilla,True,x=-350)

Y hacia el final del código, justo antes del pilas.ejecutar():

grilla = pilas.imagenes.cargar_grilla('animated_torch.png', 9)

Espero que el ejemplo te sirva para guiarte :wink:

Un saludo.

1 Like

Y aqui otro ejemplo, de mi juego “Veni vidi vici”, cuando las tropas entran en “lucha = True” su imagen cambia y se activa la grilla. Fijate en la linea que dice

grilla.avanzar(2)

en la def actualizar del actor.

En este avanzar(2), 2 seria los segundos que tarda en hacer la animacion. Si pones un 3 tardará 3 segundos en recorrer los cuadros de la grilla y la animacion se verá más lenta. Y creo recordar que si no pones ningun valor la animación será de 60 veces por segundo, ya que está en la def actualizar()…

class Romanos(pilasengine.actores.Actor):
	def iniciar(self,x,y):
		self.espejado = True
		self.colisionado = False
		self.andar = False
		self.en_movimiento = False
		self.seleccionado = False
		
		self.grilla_infa = self.pilas.imagenes.cargar_grilla("images/legionari1espasa.png",2)
		self.grilla_caba = self.pilas.imagenes.cargar_grilla("images/caballeria_espada.png",2)
		
		self.en_lucha = False
		self.cava = False
		self.infa = False
		
		self.aprender('limitadoabordesdepantalla')
		self.aprender('puedeexplotarconhumo')
		self.pilas.eventos.click_de_mouse.conectar(self.moverse_a_este_punto)
	
		self.energia = self.pilas.actores.Energia()
		self.energia.escala = 0.1
		
	
	def actualizar(self):
		self.energia.x = self.x
				
		if self.infa:
			self.energia.y = self.y +20
			
			if self.en_lucha:
				self.imagen = self.grilla_infa
				self.grilla_infa.avanzar(2) #<-----AVANZAR !!!
		
		elif self.cava:
			self.energia.y = self.y +30
			
			if self.en_lucha:
				self.imagen = self.grilla_caba
				self.grilla_caba.avanzar(2) #<------AVANZAR !!!
1 Like

Muchas gracias jordinur por tu oportuno apoyo, :slight_smile: