pilas-engine

Ayuda, el juego cuando se le da a iniciar carga en gris

# -*- 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.Galaxia()
		
		##############################################
		self.Mi_Menu = pilas.actores.Menu(
			[
				(u'Levels', self.Niveles),
				(u'Quit', self.Salir_de_Pilas)
			])
		##############################################
		
		Nombre_de_mi_juego = pilas.actores.Texto(u'Ship&Killers')
		Nombre_de_mi_juego.color = pilas.colores.azuloscuro
		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.Galaxia()
		
		##############################################
		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 crear_enemigo():
        Enemigo = AceitunaEnemiga(pilas)
        enemigos.agregar(actor)

        pilas.tareas.siempre(0.5, crear_enemigo)

        Heroe = 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.")
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(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.Galaxia(dy=-5)

enemigos = pilas.actores.Grupo()      


   

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

pilas.escenas.EscenaMenu()

pilas.ejecutar()

Buenas, @Joaquin_Gonzalez!
Tenías varios problemas en tu código, el más evidente que habías mezclado espacios y tabulaciones al indexar.

El otro error evidente era que no le habías creado la def iniciar en la escena del juego “nivel básico”.

Otros pequeños errores, como que nombrabas a tu nave “Heroe” pero después lo llamabas como “nave”, y te he movido el puntaje y el fondo a la def iniciar del nivel básico.

Ahora parece funcionar correctamente, un saludo! :wink:

# -*- 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.Galaxia()
		
		##############################################
		self.Mi_Menu = pilas.actores.Menu(
			[
				(u'Levels', self.Niveles),
				(u'Quit', self.Salir_de_Pilas)
			])
		##############################################
		
		Nombre_de_mi_juego = pilas.actores.Texto(u'Ship&Killers')
		Nombre_de_mi_juego.color = pilas.colores.azuloscuro
		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.Galaxia()
		
		##############################################
		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.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(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.Galaxia(dy=-5)

enemigos = pilas.actores.Grupo()      

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

pilas.escenas.EscenaMenu()