pilas-engine

Como hacer que cuando el puntaje llegue a cierto numero aparezca otro enemigo y se deje de crear el anterior, y como vincular la escena de perdiste cuando se pierde

# -*- encoding: utf-8 -*-
import pilasengine

pilas = pilasengine.iniciar()

#puntaje = pilas.actores.Puntaje(-280, 200, color=pilas.colores.blanco)
class EscenaMenu(pilasengine.escenas.Escena):
	def iniciar(self):
		self.fondo_menu = pilas.fondos.Espacio()
		
		##############################################
		self.Mi_Menu = pilas.actores.Menu(
			[
				(u'Jugar', self.Niveles),
				(u'Salir', self.Salir_de_Pilas)
			])
		##############################################
		
		Nombre_de_mi_juego = pilas.actores.Texto(u'Nave vs Ovnis')
		Nombre_de_mi_juego.color = pilas.colores.rojo
		Nombre_de_mi_juego.y = 170
		
		
	def actualizar(self):
		pass    
		
	def Salir_de_Pilas(self): 
		pilas.terminar()	
		
	def Niveles(self): 
		pilas.escenas.EscenaLevels()

class EscenaLevels(pilasengine.escenas.Escena):
	def iniciar(self):
		self.fondo_menu = pilas.fondos.Espacio()
		
		##############################################
		self.Mi_Menu = pilas.actores.Menu(
			[
				(u'Nivel Basico', self.NivelBasico),
			])
		##############################################



	def actualizar(self):
		pass    
		
	def NivelBasico(self): 
		pilas.escenas.NivelBasico()



class NivelBasico(pilasengine.escenas.Escena):
    def iniciar(self):
		fondo = pilas.fondos.Galaxia(dy=-5)
		
		puntaje = pilas.actores.Puntaje(-280, 200, color=pilas.colores.blanco)

		pilas.tareas.siempre(0.5, self.crear_enemigo)

		nave = pilas.actores.NaveRoja(y=-200)
		nave.aprender(pilas.habilidades.LimitadoABordesDePantalla)
		nave.definir_enemigos(enemigos, puntaje.aumentar)

		pilas.colisiones.agregar(nave, enemigos, nave.eliminar)

		pilas.avisar(u"Pulsá los direccionales del teclado o espacio para disparar.")
    
    
    
    def crear_enemigo(self):
		Enemigo = AceitunaEnemiga(pilas)
		enemigos.agregar(Enemigo)

        
        
class AceitunaEnemiga(pilasengine.actores.Ovni):

	def iniciar(self):
		self.imagen = "Ovni.png"
		self.aprender( pilas.habilidades.PuedeExplotarConHumo )
		self.x = pilas.azar(-200, 200)
		self.y = 290
		self.velocidad = pilas.azar(10, 40) / 10.0

	def actualizar(self):
		self.rotacion += 10
		self.y -= self.velocidad

		# Elimina el objeto cuando sale de la pantalla.
		if self.y < -300:
			self.eliminar()

#fondo = pilas.fondos.Espacio(dy=-5)

enemigos = pilas.actores.Grupo()      

pilas.escenas.vincular(EscenaMenu)
pilas.escenas.vincular(NivelBasico)
pilas.escenas.vincular(EscenaLevels)

pilas.escenas.EscenaMenu()

Buenas, @Joaquin_Gonzalez!
En esa colisión, en vez de llamar a nave.eliminar debes llamar a una def que te lleve a la escena de perdiste. Por ejemplo:

pilas.colisiones.agregar(nave, enemigos, self.perdiste)

def perdiste(self):
    pilas.escenas.EscenaPerdiste()

En lo de que aparezca el boss, debes añadir un contador en la DEF INICIAR DE LA ESCENA DEL JUEGO, y añadir una llamada a una función DENTRO DE LA DEF ACTUALIZAR DE LA ESCENA DEL JUEGO:

def iniciar(self):
    self.contador=0

def actualizar(self):
    if self.contador <30:
        contador +=1
    else:
        pilas.tareas.eliminar_todas()
        self.crear_boss()

En este self crear boss debes crear tu actor con una vida específica para que sea más difícil de matar, y en la def iniciar debes programar una colisión entre el proyectil y el boss para que cada vez que le aciertes el boss pierda una vida, por ejemplo:

def crear_boss(self):
    self.boss=pilas.actores.Aceituna()
    self.boss.escala=2
    self.boss.vidas=50

def iniciar(self):
    pilas.colisiones.agregar(self.boss, self.mi_proyectil, self.quitar_vida_boss)

def quitar_vida_boss(self, villano, bala):
    if villano.vidas >1:
        villano.vidas -=1
    else:
        villano.eliminar()