pilas = pilasengine.iniciar()
class MiMunicion2(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = ("F:\laser.jpg")
self.escala_y = 3
self.escala_x = 3
self.y = 100
pilas.actores.vincular(MiMunicion2)
class Bola(pilasengine.actores.Actor):
def iniciar(self):
#Darle una imagen a la clase. Ubicarla en y=290
self.imagen = "F:\Spiny_egg.jpg"
self.aprender("PuedeExplotarConHumo")
self.y = pilas.azar(-210, 210) # aparece el enemigo aleatoriamente entre -250 y 200
self.x = 150 #linea de codigo arriba del eje x
self.velocidad = pilas.azar(70, 100) / 10.0 #toma un valor aleatorio entre 10 y 40 para restarle al eje y
self.escala = 0.7
self.radio_de_colision = 60
def actualizar(self):
self.x -= self.velocidad#resto todo el tiempo de y el valor que contenga velocidad
#Elimina el objeto cuando sale de la pantalla los -300 dependiendo la direccion
if self.x <-320:
self.eliminar()
enemigos = pilas.actores.Grupo()
pilas.actores.vincular(Bola)
#funcion que crea enemigos y los agrega al grupo
def crear_enemigo():
actor = Bola(pilas)
enemigos.agregar(actor)
pilas.tareas.siempre(0.5, crear_enemigo)# la funcion crear_enemigo se repite infinitamente
#declaro personaje
class Astro(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = ("F:\Buzz.jpg")
self.escala = 0.4
self.x = -60
self.radio_de_colision = 38
self.y = -80
self.aprender('disparar', municion='MiMunicion2',angulo_salida_disparo = 360)
self.aprender("LimitadoABordesDePantalla")
def actualizar(self):
if pilas.control.derecha:
self.x += 10
self.espejado = False
if pilas.control.izquierda:
self.x -= 10
self.espejado = True
if pilas.control.arriba:
self.y +=10
if pilas.control.abajo:
self.y -=10
pilas.actores.vincular(Astro)
Astro = pilas.actores.Astro()
pilas.avisar("Pulsá los direccionales del teclado o espacio para disparar.")
#Creo teclado personalizado
def colision (dispa, Bola):
Bols.eliminar()
dispa.eliminar()
puntaje.aumentar (1)
def colision2 (Astro, Bola):
Astro.eliminar()
Bola.eliminar()
pilas.colisiones.agregar('MiMunicion2', 'Bola', colision)
pilas.colisiones.agregar('Bola', 'Astro', colision2)
pilas.ejecutar()
Hola @Zetap !!!
Estuve mirando tu código y pude hacerlo funcionar, me encontré con algunas variables que faltaba definir y otros detalles.
Acá está el código completo, fijate que tuve que cambiar los nombres de las imágenes para poder probarlo rápido. Tendrías que volver a ponerle el nombre de las imágenes correctamente:
# coding: utf-8
import pilasengine
pilas = pilasengine.iniciar()
class MiMunicion2(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = "aceituna.png"
self.escala_y = 3
self.escala_x = 3
self.y = 100
pilas.actores.vincular(MiMunicion2)
class Bola(pilasengine.actores.Actor):
def iniciar(self):
#Darle una imagen a la clase. Ubicarla en y=290
self.imagen = "mono.png"
self.aprender("PuedeExplotarConHumo")
self.y = pilas.azar(-210, 210) # aparece el enemigo aleatoriamente entre -250 y 200
self.x = 150 #linea de codigo arriba del eje x
self.velocidad = pilas.azar(70, 100) / 10.0 #toma un valor aleatorio entre 10 y 40 para restarle al eje y
self.escala = 0.7
self.radio_de_colision = 60
def actualizar(self):
self.x -= self.velocidad#resto todo el tiempo de y el valor que contenga velocidad
#Elimina el objeto cuando sale de la pantalla los -300 dependiendo la direccion
if self.x <-320:
self.eliminar()
enemigos = pilas.actores.Grupo()
pilas.actores.vincular(Bola)
#funcion que crea enemigos y los agrega al grupo
def crear_enemigo():
actor = Bola(pilas)
enemigos.agregar(actor)
pilas.tareas.siempre(0.5, crear_enemigo)# la funcion crear_enemigo se repite infinitamente
#declaro personaje
class Astro(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = "caja.png"
self.escala = 0.4
self.x = -60
self.radio_de_colision = 38
self.y = -80
self.aprender('disparar', municion='MiMunicion2',angulo_salida_disparo = 360)
self.aprender("LimitadoABordesDePantalla")
def actualizar(self):
if pilas.control.derecha:
self.x += 10
self.espejado = False
if pilas.control.izquierda:
self.x -= 10
self.espejado = True
if pilas.control.arriba:
self.y +=10
if pilas.control.abajo:
self.y -=10
pilas.actores.vincular(Astro)
Astro = pilas.actores.Astro()
pilas.avisar(u"Pulsá los direccionales del teclado o espacio para disparar.")
puntaje = pilas.actores.Puntaje()
#Creo teclado personalizado
def colision (dispa, Bola):
Bola.eliminar()
dispa.eliminar()
puntaje.aumentar(1)
def colision2 (Astro, Bola):
Astro.eliminar()
Bola.eliminar()
pilas.colisiones.agregar('MiMunicion2', 'Bola', colision)
pilas.colisiones.agregar('Bola', 'Astro', colision2)
pilas.ejecutar()
Abrazo!