Hola, tengo un problema con mi juego, no se como hacer para que termine una vez que el actor Pingu sea eliminado
quiero que cambie el fondo y diga “Game Over”.
# coding: utf-8
import pilasengine
pilas = pilasengine.iniciar()
fondo = pilas.fondos.Tarde()
puntaje = pilas.actores.Puntaje(-280, 200, color=pilas.colores.blanco)
class Aceituna(pilasengine.actores.Aceituna):
def iniciar(self):
self.imagen = "Aceituna.png"
self.x = pilas.azar(-250, 250)
self.y = 290
self.velocidad = pilas.azar(15, 30) / 7.0
self.rotacion += 180
def actualizar(self):
self.y -= self.velocidad
# Elimina el objeto cuando sale de la pantalla.
if self.y < -300:
self.eliminar()
puntaje.aumentar()
enemigos = pilas.actores.Grupo()
def crear_Aceituna():
actor = Aceituna(pilas)
enemigos.agregar(actor)
pilas.tareas.siempre(0.5, crear_Aceituna)
pingu = pilas.actores.Pingu(y = -240)
pingu.aprender(pilas.habilidades.LimitadoABordesDePantalla)
pingu.aprender("PuedeExplotar")
pilas.fondos.Noche()
pingu.escala = 0.80
pingu.aprender('MoverseConElTeclado')
pilas.colisiones.agregar(pingu, enemigos, pingu.eliminar)
pingu.radio_de_colision = 30
pilas.avisar(u"Esquiva las aceitunas ")
pilas.fondos.Tarde()
pilas.ejecutar()
Buenas, @Gabriel2409 !
Es tan fácil como crear una def a la que se llama cuando se da la colisión.
En esa def programamos que se elimine Pingu, que se cambie el fondo, y que salga el mensaje Game Over. Tambien finalizamos la creación de aceitunas para que no sigan saliendo sin parar.
Fíjate que a Pingu no hace falta “aprender” a moverse con el teclado, ya que esa es una de las habilidades programadas de este actor.
Un saludo!
# coding: utf-8
import pilasengine
pilas = pilasengine.iniciar()
fondo = pilas.fondos.Tarde()
puntaje = pilas.actores.Puntaje(-280, 200, color=pilas.colores.blanco)
class Aceituna(pilasengine.actores.Aceituna):
def iniciar(self):
self.imagen = "aceituna.png"
self.x = pilas.azar(-250, 250)
self.y = 290
self.velocidad = pilas.azar(15, 30) / 7.0
self.rotacion += 180
def actualizar(self):
self.y -= self.velocidad
# Elimina el objeto cuando sale de la pantalla.
if self.y < -300:
self.eliminar()
puntaje.aumentar()
enemigos = pilas.actores.Grupo()
def crear_Aceituna():
actor = Aceituna(pilas)
enemigos.agregar(actor)
tarea_crear_aceituna = pilas.tareas.siempre(0.5, crear_Aceituna)
pingu = pilas.actores.Pingu(y = -240)
pingu.aprender("LimitadoABordesDePantalla")
pingu.aprender("PuedeExplotar")
# pilas.fondos.Noche()
pingu.escala = 0.80
pingu.radio_de_colision = 30
#pingu.aprender('MoverseConElTeclado')
def game_over(pingu,enemigos):
pingu.eliminar()
tarea_crear_aceituna.terminar()
fondo = pilas.fondos.Noche()
notificacion_Game_Over = pilas.actores.Texto("Game Over")
pilas.colisiones.agregar(pingu, enemigos, game_over)
pilas.avisar(u"Esquiva las aceitunas ")
#pilas.fondos.Tarde()
pilas.ejecutar()