Ayuda con clases actor y escena

hola con todos, quiero saber como le hago. Eh creado una clase de tipo actor pero esta se encuentra fuera de mi escena principal , esta clase lo que hace es hacer avanzar una grilla por todo el escenario de izquierda a derecha como lo llamo en mi escena : aqui dejo mi codigo :slight_smile , gracias de antemano:

import pilasengine
pilas = pilasengine.iniciar(ancho =1250 , alto = 700)

class PajaroEnemigo(pilasengine.actores.Actor):
    def iniciar(self):
        self.grilla = pilas.imagenes.cargar_grilla('imagenes/pajaro.png', 5, 3)
        self.imagen = self.grilla
        self.escala = 0.3
        self.aprender( pilas.habilidades.PuedeExplotarConHumo )
        self.y= pilas.azar(-50, 200)
        self.x = -290
        self.velocidad = pilas.azar(10, 40) / 30.0
    def actualizar(self):
        self.grilla.avanzar()
        self.imagen = self.grilla
        self.x += self.velocidad

class JuegoNivel_1( pilasengine.escenas.Escena ):
    
    #aqui quiero llamar a mi clase PajaroEnemigo Como lo hago 

    def iniciar(self):
        fondo = pilas.fondos.Fondo(imagen='imagenes/fondo25.png')   
        puntos = pilas.actores.Puntaje( x=500, y=320, color= pilas.colores.Color(97, 33, 195)) 
        puntos.escala = 1.5   

# eh intentado con esto pero pero no resulta

   def crear_enemigo(self):
        self.pilas.actores.PajaroEnemigo()
        
    pilas.tareas.siempre(1 , crear_enemigo )

buenas, @universo91 !

como no se ve el final del código no puedo adivinar si ya vinculaste tu actor… Lo vinculaste???

Un saludo :wink:

hola que tal, si, si lo vincule, aquí le paso el código para que me pueda ayudar

import pilasengine

pilas = pilasengine.iniciar(ancho =1250 , alto = 700)

class PajaroEnemigo(pilasengine.actores.Actor):
    def iniciar(self):
        self.grilla = pilas.imagenes.cargar_grilla('imagenes/pajaro.png', 5, 3)
        self.imagen = self.grilla
        self.escala = 0.3
        self.aprender( pilas.habilidades.PuedeExplotarConHumo )
        self.y= pilas.azar(-50, 200)
        self.x = -290
        self.velocidad = pilas.azar(10, 40) / 30.0
    def actualizar(self):
        self.grilla.avanzar()
        self.imagen = self.grilla
        self.x += self.velocidad

class JuegoNivel_1( pilasengine.escenas.Escena ):
    
    #aqui quiero llamar a mi clase PajaroEnemigo Como lo hago 

    def iniciar(self):
        fondo = pilas.fondos.Fondo(imagen='imagenes/fondo25.png')   
        puntos = pilas.actores.Puntaje( x=500, y=320, color= pilas.colores.Color(97, 33, 195)) 
        puntos.escala = 1.5   

   def crear_enemigo(self):
        self.pilas.actores.PajaroEnemigo()
        
    pilas.tareas.siempre(1 , crear_enemigo )
pilas.actores.vincular(PajaroEnemigo)
pilas.escenas.vincular( JuegoNivel_1 )
pilas.escenas.EscenaMenu()

pilas.ejecutar()

Yo pondría esa tarea dentro de la def iniciar(self) de la escena, pero instanciandola (y llamándola) con el “self”…

def iniciar(self):
        fondo = pilas.fondos.Fondo(imagen='imagenes/fondo25.png')   
        puntos = pilas.actores.Puntaje( x=500, y=320, color= pilas.colores.Color(97, 33, 195)) 
        puntos.escala = 1.5
        self.tarea_crear_enemigo = pilas.tareas.siempre(1 , self.crear_enemigo )

Tambien te aconsejaría por “buenas prácticas” que instanciaras bien tu pajaroEnemigo:
self.cualquierNombre = pilas.actores.PajaroEnemigo()

También observo que de principio estás llamando a la “EscenaMenu”, que no veo en tu código… ni siquiera está vinculada :open_mouth:

Siento no poder ayudarte más, pero es que estoy sin PC ni conexión a internet y justo puedo conectarme 5 minutos en clase :wink:

wooo, genial, genial, muchas gracias @jordinur por tu ayuda, le diste en el clavo, me funciona a la perfeccion !!!