Saludos, estoy probando tipos de disparo para un juego.
Lo que necesito saber es: como hacer para cuando un disparo golpee la estrella cambiar el modo de disparo?
este es el código, basado de algunas respuestas de consultas en este foro.
# coding: utf-8
import pilasengine
class GenerarDisparoDirigido(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = "invisible.png"
pass
def actualizar(self):
actor = pilas.actores.MisilDirigido(self.x, self.y)
self.eliminar()
class MisilDirigido(pilasengine.actores.Actor):
def iniciar(self, x, y):
self.x = x
self.y = y
self.imagen = "disparo_laser.png"
self.dx = (mono.x - self.x) / 10.0
self.dy = (mono.y - self.y) / 10.0
self.rotacion = pilas.utils.obtener_angulo_entre(( self.x, self.y), (mono.x, mono.y))
def actualizar(self):
self.x += self.dx
self.y += self.dy
class GenerarDisparoDirigidoDoble(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = "invisible.png"
pass
def actualizar(self):
actor = pilas.actores.MisilDirigido(self.x, self.y, "disparo_laser.png", 15)
actor = pilas.actores.MisilDirigido(self.x, self.y, "disparo_laser.png", -15)
self.eliminar()
def asignar_arma_doble(estrella, GenerarDisparoDirigidoDoble):
pin.municion = GenerarDisparoDirigidoDoble
estrella.eliminar()
pilas.avisar("ARMA MEJORADA")
def eliminar_estrella(estrella):
estrella.eliminar()
pilas = pilasengine.iniciar()
pilas.fondos.Tarde()
mono = pilas.actores.Mono()
estrella = pilas.actores.Estrella()
estrella.y = 200
estrella.x = 200
estrella.escala = 0.5
mono.escala = 0.2
mono.y = 200
pin = pilas.actores.Shaolin(y=-248)
pin.aprender("dispararconclick", municion=GenerarDisparoDirigido, frecuencia_de_disparo=3.5 , offset_origen_actor=(20,80))
pin.escala = 0.8
pilas.colisiones.agregar("estrella", 'MisilDirigido', asignar_arma_doble)
pilas.actores.vincular(GenerarDisparoDirigido)
pilas.actores.vincular(MisilDirigido)
mono.aprender('SeguirAlMouse')
pilas.ocultar_puntero_del_mouse()
pilas.ejecutar()