Estimado, seguro Hugo debe tener una respuestas mas acorde a tu necesidad que la mía, pero voy a pasar a decirte que es lo que yo haria, de tal forma, todo seria mucho mas personalizable.
Crear un Actor tipo “Municion”, por supuesto debe tener otro nombre ya que ese es propio de pilas:
class MiMunicion(Actor): def iniciar(self, x, y: \#Cargo la imagen, sonido, etc con los metodos ya conocidos self.x = x self.y = y self.hacer(ComportamientoDisparo)
Esto quiere decir que nuestra clase mi Municion, es un actor, y las posiciones x e y se las podemos pasar por constructor.
Ahora la clase comportamiento
class ComportamientoDisparo (Comportamiento): def iniciar(self, receptor): self.receptor = receptor def actualizar(self): self.receptor.x += 1 #O a gusto de como se requiera mover el disparo
No es tan sencillo hasta ahi. Pero aca viene la parte donde se torna muy util.
vos tenes tu clase nave, supongamos que asi:
class Nave(Actor): def iniciar(self): \# Toda la construccion que ya conocemos aca. self.cantidadDeDisparos = 1 #Esta podria ser una de las propiedades a la hora de disparar.
def cuando_pulsa_una_tecla(evento): if self.evento.simbolo.a: self.disparar()
def disparar(self): if (self.cantidadDeDisparos ==1): #Si mi propiedad de cantidadDeDisparos es 1, creo 1 disparo solo disparo = MiMunicion(x = self.x, y = self.y) #Le paso las propias x e y de la nave para que el disparo empiece ahi if (self.cantidadDeDisparos==2): #Pero si son dos la cantidad de disparos, creo un disparo, un poco mas arriba y otro, un poco mas abajo de la nave. Todo a gusto propio. disparo1= MiMunicion(x= self.x, y = self.y+10) disparo2= MiMunicion(x= self.x, y = self.y-10)
Espero te sirva che…Si decidis hacerlo asi, y tenes mas preguntas. Pregunta tranquilo.
Suerte master!