Hola!
Estamos tratando de capturar la colisión entre el disparo y los actores (monos y aceitunas que se crean dinámicamente), pero no hemos podido realizarlo.
Les enviamos el código fuente para ver si alguien puede corregírnoslo.
Somos una profe y alumna de programación, en la que estamos aprendiendo a usar pilas.
Gracias!
# coding: utf-8
import pilasengine
pilas = pilasengine.iniciar()
nave = pilas.actores.Nave(y=-200)
nave.aprender("LimitadoABordesDePantalla")
class MiMunicion(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = "disparos/bola_amarilla.png"
self.escala_y = 0.25
self.escala_x = 0.25
self.y = 100
def actualizar(self):
self.escala_y += 0.2
self.rotacion += 10
pilas.actores.vincular(MiMunicion)
nave.aprender('disparar', municion='MiMunicion', angulo_salida_disparo=90)
enemigos = pilas.actores.Grupo()
def crear_actor_aceituna():
a = pilas.actores.Aceituna()
enemigos.agregar(a)
a.aprender('puedeExplotar')
a.x = pilas.azar(-200, 200)
a.y = pilas.azar(-200, 200)
a.escala = 0.1
a.escala = [1]
def crear_actor_mono():
m = pilas.actores.Mono()
enemigos.agregar(m)
m.aprender('puedeExplotar')
m.y = pilas.azar(-200, 200)
m.escala = 0.1
m.escala = [0.5]
#valor = pilas.azar(1, 2)
#if valor == 1:
#m.x = pilas.azar(-200, 200)
#m.hacer("Avanzar", 200)
#else:
m.x = pilas.azar(-200, 200)
m.hacer("Avanzar", pilas.azar(1, 50))
nave.definir_enemigos(enemigos)
def crear_enemigo():
valor = pilas.azar(1, 3)
if valor == 1:
crear_actor_aceituna()
elif valor == 2:
crear_actor_mono()
pilas.tareas.siempre(0.5, crear_enemigo)
puntaje = pilas.actores.Puntaje(color='blanco')
puntaje.x = 300
puntaje.y = 220
fondo = pilas.fondos.Galaxia()
def destruir(disparo, enem):
disparo.eliminar()
enem.eliminar()
puntaje.aumentar(100)
pilas.colisiones.agregar('MiMunicion', enemigos, destruir)
pilas.ejecutar()