hola buenas, la presente es para solicitar su ayuda para montar el contador y la barra de vida ya e montado de muchas formas y no lo e logrado les dejo una copia completa de todos los Códigos
lo único que falta es que funcione los contadores con las colisiones, la barra de Vida del actor Principal y el enemigo y como hacer que la cámara siga al actor.
e estado mas de 6 días con el mismo problema y no consigo como hacer que haga eso
#______________________________________________________________________________________
# Variables
#---------------------------------------------------------------------------------------
VelocidadDeMovimiento = 6
Salto = 1
GRAVEDAD = 10
GravedadNormal = 2
Radio_De_Colicion = 10
items = 10
Radio_De_Colicion_Enemigo = 30
cantidad_puntos = 0
#______________________________________________________________________________________
# Portada
# Escenas Numero 1 (uno)
#---------------------------------------------------------------------------------------
class Portada (pilasengine.escenas.Escena):
def iniciar(self):
#--------------- Fondo --------------------------------
self.Fondo=pilas.fondos.Fondo()
self.Fondo.imagen=pilas.imagenes.cargar('videojuego pioneritos/Fondos/Escenario de prueba.png')
self.Fondo.escala = 0.319
#----------------logo Imagen-----------------------------------
self.pioneritos=pilas.actores.Actor(imagen="videojuego pioneritos/Logo de Introduccion/Logo principal.png")
self.pioneritos.escala =[0.3,0.35]*20,1.5
self.pioneritos.y = 70
#----------------- Boton Siguiente----------------------------------------
self.Sig=pilas.interfaz.Boton("Siguiente")
self.Sig.conectar(self.Siguiente)
self.Sig.y =-280
self.Sig.x = -50
self.Sig.escala= 3.5
#------------------- Boton Salir ------------------------------------------
self.salir=pilas.interfaz.Boton("X")
self.salir.conectar(self.Salir)
self.salir.x =700
self.salir.y =458
self.salir.escala=1.7
pass
#def Siguiente(self): #no Construido
#pilas.escenas.Escena2()# no construido
def Siguiente (self):
pilas.escenas.Juego_Nivel_1()
def Salir(self):
pilas.terminar()
pass
#______________________________________________________________________________________
# Municion
#---------------------------------------------------------------------------------------
#------------------------- Municion de Simon--------------------------------------------
class Municion_Simon(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = "/home/usuario/videojuego pioneritos/Actor/Item/manzana.png"
self.radio_de_colision = 5
self.escala = 0.1
def actualizar(self):
self.rotacion += 10
self.escala = 0.2
pilas.actores.vincular(Municion_Simon)
#---------------------------Municion de Enemigo Principal--------------------------------
class Municion_Enemigo(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = "/home/usuario/videojuego pioneritos/Actor/Item/Fuego.png"
self.centro_x = 100
self.aprender("puedeexplotar")
self.radio_de_colision = 10
def actualizar(self):
# actualizar se ejecuta 60 veces por segundo, así
# que las siguientes lineas harán que aumente el tamaño
# del diparo y siempre estén girando.
self.escala_y += 0.2
self.rotacion= 0
self.escala = 0.8
if self.x > -7:
self.x = -7
self.eliminar()
#_______________________________________________________________
class Vida (pilasengine.actores.energia.Energia):
def __init__(self):
pilas.eventos.cuando_golpean.conectar(self.actualizar_energia)
def actualizar(self):
pass
def actualizar_energia(self,evento):
self.progreso =evento.quien.energia
#______________________________________________________________________________________
# Actor Simon
#---------------------------------------------------------------------------------------
class Simon (pilasengine.actores.Actor):
def iniciar(self):
self.imagen = pilas.imagenes.cargar_animacion("/home/usuario/videojuego pioneritos/Actor/Simon/Caminando.png", 13)
self.y = -395 # locacizacion del personaje
self.x = -730 # localizacion del persoanje
#self.y = 360 # locacizacion del personaje prueba
#self.x = -234 # localizacion del persoanje prueba
self.escala = 0.1
self.radio_de_colision = Radio_De_Colicion
self.centro_y = 225
#_____________________________________________________________________________
#------------- animacion de personaje ---------------------------------------------
self.imagen.definir_animacion('parado', [6], 10)
self.imagen.definir_animacion('caminar', [6,1,2,3,4,5,6,7,8,9,10,11,12], 17)
self.imagen.definir_animacion('saltar', [1,6,12], 15)
self.hacer_inmediatamente('ComportamientoNormal')
#-------------------- Fisica-----------------------------------------
self.figura = pilas.fisica.Circulo(self.x, self.y, 5,
friccion=0, restitucion=0)
#---------------------------------------------------------------------
self.sensor_pies = pilas.fisica.Rectangulo(self.x, self.y, 0.2, 0.05, sensor=True, dinamica=False)
#-----------------------------------------------------------------------------------------------
self.figura.escala_de_gravedad = 2
#---------------------------------------------------------------------
self.aprender('disparar', municion='Municion_Simon', angulo_salida_disparo= 0)
self.pilas.avisar("Pulsa la tecla espacio para disparar.")
def actualizar(self):
#---------------------------- Fisica complemento----------------------------
velocidad = 4
self.x = self.figura.x
self.y = self.figura.y
#------------------------------ Vinculacion con la Fisica (Figura)-----------------------
self.sensor_pies.x = self.x # sensor de pies
self.sensor_pies.y = self.y - 15 #sensor de pies
#----------------------------- Complementos de l fisica ---------------------------------
if self.esta_pisando_el_suelo():
if self.pilas.control.arriba and int(self.figura.velocidad_y) <= 0:
self.figura.impulsar(0, Salto)
#------------------------------------------------------------------------------
if pilas.control.izquierda:
self.figura.velocidad_x = -velocidad
self.x -= VelocidadDeMovimiento
self.espejado = True
elif pilas.control.derecha:
self.figura.velocidad_x = velocidad
self.x += VelocidadDeMovimiento
self.espejado = False
else:
self.figura.velocidad_x = 0 # Friccion del personaje
#_____________________________________________________________________________
#------------- Limite espaciales ---------------------------------------------
if self.x > 760:
self.x = 760
if self.x < -760:
self.x = -760
#_______________________________________________________________________________
self.imagen.avanzar()
def esta_pisando_el_suelo(self):
return len(self.sensor_pies.figuras_en_contacto) > 0
#______________________________________________________________________________________
# Comportamientos
#---------------------------------------------------------------------------------------
class ComportamientoNormal(pilasengine.comportamientos.Comportamiento):
def iniciar(self, receptor):
self.receptor = receptor
self.receptor.imagen.cargar_animacion('parado')
def actualizar(self):
if pilas.control.derecha or pilas.control.izquierda:
self.receptor.hacer_inmediatamente('ComportamientoCaminar')
if pilas.control.arriba:
self.receptor.hacer_inmediatamente('ComportamientoSaltar')
#---------------------------------------------------------------------------------------
class ComportamientoCaminar(pilasengine.comportamientos.Comportamiento):
def iniciar(self, receptor):
self.receptor = receptor
self.receptor.imagen.cargar_animacion('caminar')
def actualizar(self):
if not pilas.control.derecha and not pilas.control.izquierda:
self.receptor.hacer_inmediatamente('ComportamientoNormal')
if pilas.control.arriba:
self.receptor.hacer_inmediatamente('ComportamientoSaltar')
#---------------------------------------------------------------------------------------
class ComportamientoSaltar(pilasengine.comportamientos.Comportamiento):
def iniciar(self, receptor):
self.receptor = receptor
self.receptor.imagen.cargar_animacion('saltar')
self.velocidad = 12
self.coordenada_y_inicial = self.receptor.y
def actualizar(self):
self.receptor.y += self.velocidad
self.velocidad -= 0.5
if self.receptor.y < self.coordenada_y_inicial:
self.receptor.hacer_inmediatamente('ComportamientoNormal')
self.receptor.y = self.coordenada_y_inicial
pass
#---------------- Vinculacio de Comportamientos---------------------------------------
pilas.comportamientos.vincular(ComportamientoNormal)
pilas.comportamientos.vincular(ComportamientoCaminar)
pilas.comportamientos.vincular(ComportamientoSaltar)
pilas.actores.vincular(Simon)
#______________________________________________________________________________________
# Actor Enemigo Principal
#---------------------------------------------------------------------------------------
class Enemigo (pilasengine.actores.Actor):
def iniciar(self):
self.imagen = pilas.imagenes.cargar_animacion("/home/usuario/videojuego pioneritos/Actor/Enemigo/Enemigo.png", 5,2)
self.y = 360 # locacizacion del personaje
self.x = -675 # localizacion del persoanje
self.x = [-675,-600]*1000,5
self.escala = 0.5
self.centro_y = 100
self.radio_de_colision = Radio_De_Colicion_Enemigo
#_____________________________________________________________________________
#------------- animacion de personaje ---------------------------------------------
self.imagen.definir_animacion('parado', [1], 10)
self.imagen.definir_animacion('caminar', [1,2,3,4,5,6,7,8,9],10)
self.imagen.cargar_animacion('caminar')
self.aprender("disparar",control=None, municion= 'Municion_Enemigo', angulo_salida_disparo =0)
self.tarea_disparar = pilas.tareas.siempre(1.5,self.realizar_disparo) # Disparo automatico
def actualizar(self):
#Limite Espacial
if self.x > -5:
self.x = -5
if self.x < -760:
self.x = -760
self.imagen.avanzar()
def realizar_disparo (self): #complemento de disparo automatico
self.disparar()
def recibir_golge(self):
self.Vida -=10
if self.energia < 0:
self.eliminar()
self.tarea_disparar.terminar
pilas.eventos.cuando_golpean.emitir(quien=self)
#-------------------- Vinculacion --------------------------------------------------
pilas.actores.vincular(Enemigo)
pilas.actores.vincular(Municion_Enemigo)
#______________________________________________________________________________________
# Itens
#---------------------------------------------------------------------------------------
class Morralito(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = "/home/usuario/videojuego pioneritos/Actor/Item/Bolso pototipo 1.png"
self.escala = 0.07
self.radio_de_colision = items
def actualizar(self):
pass
pilas.actores.vincular(Morralito)
morralito=Morralito(pilas)
def colision_Morralito(simon,morralito): #coliciones del juego
morralito.eliminar()
#______________________________________________________________________________________
# Escenas del Juego
#---------------------------------------------------------------------------------------
# Nivel 1
class Juego_Nivel_1 (pilasengine.escenas.Escena):
def iniciar (self):
global cantidad_puntos
#--------------- Fondo -----------------------------------------------------------------------
self.Fondo=pilas.fondos.Fondo()
self.Fondo.imagen=pilas.imagenes.cargar('videojuego pioneritos/Fondos/Escenario de prueba.png')
self.Fondo.escala = 0.319
#------------------ Mapa ----------------------------------------------------------------------
self.mapa = pilas.actores.MapaTiled('plataformas para el juego.tmx', densidad=0,
restitucion=0, friccion=0, amortiguacion=0)
#------------------ importando los Actores principales-----------------------------------------
self.simon = Simon(pilas)
self.enemigo = Enemigo(pilas)
self.morralito=Morralito(pilas)
self.morralito= self.morralito*10
self.morralito.y = -465
self.pilas.colisiones.agregar("simon","morralito",colision_Morralito)
#self.pilas.eventos.actualizar.conectar(mover_camara)
#self.pilas.eventos.actualizar.conectar(itens)
def actualizar (self):
pass
#---------------------------------------------------------------------------------------
# Nivel 2
#---------------------------------------------------------------------------------------
class Juego_Nivel_2 (pilasengine.escenas.Escena):
def iniciar (self):
pass
def actualizar(self):
pass
pilas.escenas.vincular(Portada)
pilas.escenas.vincular(Juego_Nivel_1)
pilas.escenas.vincular(Juego_Nivel_2)
pilas.escenas.Juego_Nivel_1()