**Buenas tardes! Estoy teniendo un problema al sumar puntaje luego de una colisión de disparo pero con escenas! **
El juego en sí, contiene una clase para mi personaje principal (héroe), otra clase para los enemigos que van apareciendo aleatoriamente en escena, y otra para las municiones que va a disparar el héroe.
Además de estas 3 clases, existen dos clases más para cada una de las escenas. Una para la interfaz con el usuario, que contiene un menú, y otra para la escena de juego. Creo que tengo problemas al ordenar el código. De esta manera me suma cada vez que disparo, sin importar la colisión! Quiero que solamente sume puntos cuando colisione con un enemigo. Copio el código! Desde ya muchas gracias!!
import pilasengine
pilas = pilasengine.iniciar()
cantidad_puntitos = 0 //creo una global para luego definirla con los puntos
//funciones del menú
//escena del menú
//Creo las municiones que van a ser los disparos
class miMunicion(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = pilas.imagenes.cargar("ruta\archivo.png")
//Vinculo la clase miMunicion con la lista de actores
pilas.actores.vincular(miMunicion)
//defino clase Enemigo
//vinculo clase Enemigo
//Construyo la clase del heroe que puede disparar
//Vinculo la clase HeroeDispara con la lista de actores
//Creo un grupo que luego guardará todos los enemigos creados por la tarea que está en la escenaJuego.
grupoEnemigos = pilas.actores.Grupo()
//Creo una función que construya mi personaje Héroe
def crear_heroe():
//Creo las teclas y el control nuevo. El botón corresponde a la barra de espacio por defecto.
teclasSilvi = {pilas.simbolos.a:'izquierda',
pilas.simbolos.d:'derecha',
pilas.simbolos.q:'boton'}
controlSilvi= pilas.control.Control(teclasSilvi)
pj = pilas.actores.HeroeDispara()
pj.aprender("Disparar", angulo_salida_disparo = 90, control = controlSilvi, municion = 'miMunicion', frecuencia_de_disparo = 1)
pj.aprender(pilas.habilidades.MoverseConElTeclado, control = controlSilvi)
pilas.colisiones.agregar(pj, grupoEnemigos, colisionPerder)
//Creo la funcion que construya a los enemigos y los agregue al grupo
def crear_enemigos_siempre():
e = Enemigo(pilas)
grupoEnemigos.agregar(e)
pilas.colisiones.agregar('miMunicion', 'Enemigo', elimina_enemigo)
//Escena del JUEGO:
class escenaJuego(pilasengine.escenas.Escena):
def iniciar(self):
global cantidad_puntitos
self.pilas.fondos.Espacio()
pilas.tareas.siempre(2, crear_enemigos_siempre)
pilas.tareas.una_vez(0.1, crear_heroe)
pilas.eventos.pulsa_tecla_escape.conectar(self.regresar)
pilas.avisar(u"Con la tecla ESC volves al menú")
self.puntitos = pilas.actores.Puntaje(x=200, y=200, color="blanco") // creo el puntaje
self.puntitos.definir(cantidad_puntitos) //defino que cantidad_puntitos sea parte del puntaje
self.pilas.colisiones.agregar('miMunicion', 'HeroeDispara', self.sumar_puntos)
def sumar_puntos(self):
global cantidad_puntitos
self.puntitos.aumentar(1)
cantidad_puntitos +=1
def regresar(self, evento):
pilas.escenas.escenaMenu()
//Vinculo la escenaJuego a la lista de escenas
pilas.escenas.vincular(escenaJuego)
//Colisión cuando elimina a un actor con las balas (disparo) con las etiquetas del grupo y "disparo".
//Disparo ya existe y está definido en pilas-engine como cada una de las balas activadas cuando pulso el //botón para disparar
def elimina_enemigo(disparo, grupoEnemigo):
disparo.eliminar()
grupoEnemigo.eliminar()
//Agrego que quiero que ocurra cuando la colisión ocurra:
pilas.colisiones.agregar('miMunicion', 'HeroeDispara', elimina_enemigo)
No me toma la identación! Espero se entienda!!! Graaaaaaacias de ante mano!!!