Hice un juego en el que un mono dispara municiones a un grupo de aceitunas. Definí una clase " MiMunición" y la vinculé al mono, pero no sé cómo hacer para que la munición colicione con la aceituna.
Me ayudarian por favor? Gracias desde ya
Aca les dejaria el codigo:
import pilasengine
pilas = pilasengine.iniciar()
puntaje = pilas.actores.Puntaje(-280, 200, color=pilas.colores.blanco)
fondo = pilas.fondos.Noche()
# JUGADOR
class MonoConControles(pilasengine.actores.mono.Mono):
def iniciar(self):
self.imagen = "mono.png"
self.y=-100
def actualizar(self):
if self.pilas.escena_actual().control.arriba:
self.y += 5
elif self.pilas.escena_actual().control.abajo:
self.y -= 5
if self.pilas.escena_actual().control.izquierda:
self.x -= 5
elif self.pilas.escena_actual().control.derecha:
self.x += 5
mono_con_controles = MonoConControles(pilas)
# Habilidad de disparo
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.rotacion += 10
pilas.actores.vincular(MiMunicion)
mono_con_controles.aprender('disparar', municion='MiMunicion', angulo_salida_disparo=90)
#EL ENEMIGO
class AceitunaEnemiga(pilasengine.actores.Aceituna):
def iniciar(self):
self.imagen = "aceituna.png"
self.aprender( pilas.habilidades.PuedeExplotarConHumo )
self.x = pilas.azar(-200, 200)
self.y = 290
self.velocidad = pilas.azar(5, 15) / 4.0
def actualizar(self):
self.rotacion += 2
self.y -= self.velocidad
# Elimina el objeto cuando sale de la pantalla.
if self.y < -300:
self.eliminar()
enemigos = pilas.actores.Grupo()
def crear_enemigo():
actor = AceitunaEnemiga(pilas)
enemigos.agregar(actor)
pilas.tareas.siempre(0.5, crear_enemigo)
mono_con_controles.aprender(pilas.habilidades.LimitadoABordesDePantalla)
pilas.colisiones.agregar(mono_con_controles, enemigos, mono_con_controles.eliminar)
#pilas.colisiones.agregar(enemigos,MiMunicion,enemigos.eliminar
pilas.ejecutar()