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
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
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
wooo, genial, genial, muchas gracias @jordinur por tu ayuda, le diste en el clavo, me funciona a la perfeccion !!!