Plataformas

Vamos a realizar el comentario del juego "Plataformas":
import pilasengine  #Importación de todo el modulo de pilasengine y sus componentes

pilas = pilasengine.iniciar( ) #Inicio del programa pilasengine
pilas.reiniciar_si_cambia(__file__) #Instrucción para tener una mayor fluidez

mapa = pilas.actores.MapaTiled('plataformas.tmx', densidad=0, #Instrucción para aplicar una 
restitucion=0, friccion=0, amortiguacion=0)  física al fondo 

caja= pilas.actores.Caja()  #Importación del actor caja
caja.aprender('arrastrable') #Aplicación de la habilidad arrastable al actor caja

pilas.fondos.Tarde() ##Instrucción para aplicar el fondo Tarde

class Protagonista(pilasengine.actores.Actor): # #Instrucción para crear una nueva clase llamada "Protagonista" donde indicaremos los atributos del actor 
 def iniciar(self):  #Función para crear el actor aceituna
   self.imagen = "aceituna.png" #Indicación de la imagen que se usara para el actor  
   self.figura= pilas.fisica.Circulo(self.x,self.y,17) #Instrucción para darlle la fisica del circulo a la     aceituna
   self.figura.sin_rotacion= True #Instrucción para darle al actor el atributo de sin rotación
   self.escala_de_gravedad=2  #Indicación para darle una gravedad de valor 2
   self.sensor_pies=pilas.fisica.Rectangulo(self.x, self.y, 20, sensor=True, dinamica=False)
   #Instrucción para que el actor al tocar el suelo, este tenga la física del rectangulo

 def actualizar(self): #Función para actualizar los movimientos que hace nuestro actor 
   velocidad=10 #Indicación para darle el valor de 10 a la velocidad del actor
   salto=15 #Indicación para darle el valor de 15 al salto el actor
   self.x=self.figura.x #Instrucción para igualar la "x" y la "y" del objeto con él de las figuras
   self.y=self.figura.y
 if self.pilas.control.derecha: #Condición para el control de la derecha de la figura
   self.figura.velocidad_x=velocidad #Instrucción para que la "x" de la velocidad tome el valor velocidad
   self.rotacion-=velocidad  #Instrucción para quela rotación se decremente con el valor de la velocidad
 elif self.pilas.control.izquierda: #Condición para el control de la izquierda de la figura
   self.figura.velocidad_x=-velocidad #Instrucción para que la "x" de la velocidad tome el valor velocidad
   self.rotacion+=velocidad #Instrucción para que la rotación se incremente con el valor de la velocidad
 else:
   self.figura.velocidad_x=0   #Instrucción para que la "x" de la velocidad toma el valor 0 y por tanto, se para

 if self.si_esta_pisando_suelo(): #Condición para cuando el actor este en el suelo
   if self.pilas.control.arriba and (int(self.figura.velocidad_y))<=0:
     self.figura.impulsar(0,salto)  #Instrucción para que si pulsamos el control arriba y el componente y de la velocidad es negativo, entonces la figura se impulsa con valores 0 y variable salto

self.sensor_pies.x=self.x  #Instrucción para que valor x del sensor de pies tenga el valor x 
self.sensor_pies.y=self.y-20  #Instrucción para que el valor y del sensor de pies tenga el valor y-20

 if self.si_esta_pisando_suelo(): #Condición para cuando el actor este en el suelo
  self.imagen= "aceituna.png" #Instrucción para que si lo esta, introduzca la imagen aceituna
 else:
  self.imagen="aceituna_risa.png" #Instrucción para que si no lo esta, introduzca la imagen              aceituna sonriendo

 def si_esta_pisando_suelo(self): #Función para que el actor pueda pisar el suelo
   return len(self.sensor_pies.figuras_en_contacto)>0

#Programa Principal
pilas.actores.vincular(Protagonista) #Vinculación del actor con la classe protagonista
paquito=pilas.actores.Protagonista() #Instrucción para llamarr al actor protagonista

pilas.ejecutar() #Indicación para que se ejecute el programa pilasengine

Comentarios