# -*- 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!
# -*- 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()