domingo, 7 de abril de 2019

Plataformas

A continuación comentaremos el funcionamiento del juego que hemos creado posteriormente.


import pilasengine  #Importa el módulo de pilasengine
pilas = pilasengine.iniciar( ) #Inicio del programa
pilas.reiniciar_si_cambia(__file__) #Instrucción para aumentar la fluidez

mapa = pilas.actores.MapaTiled('plataformas.tmx', densidad=0, restitucion=0, friccion=0, amortiguacion=0)  


caja= pilas.actores.Caja()  #Importa el actor caja
caja.aprender('arrastrable') #Podrá ser arrastrable el actor caja 

pilas.fondos.Tarde() #Aplicación del fondo Tarde
class Protagonista(pilasengine.actores.Actor): #Instrucción donde creamos una nueva clase 
 def iniciar(self): #Se crea el actor aceituna 
   self.imagen = "aceituna.png" #Indica la imagen que se usará para el actor
   self.figura= pilas.fisica.Circulo(self.x,self.y,17) #Indica que la figura del actor sera circular
   self.figura.sin_rotacion= True #Indica que no habrá rotación 
   self.escala_de_gravedad=2  # Indica el valor de gravedad, que sera 2
   self.sensor_pies=pilas.fisica.Rectangulo(self.x, self.y, 20, sensor=True, dinamica=False)
   #Indica que si el actor esta tocando suelo, este tenga la forma de un rectangulo

 def actualizar(self): #Actualiza los movimientos que hace el actor
   velocidad=10 #será 10 el valor de velocidad del actor
   salto=15 #Será 15 el valor de salto del actor
   self.x=self.figura.x 
   self.y=self.figura.y
 if self.pilas.control.derecha: #Condición para el control de la derecha
   self.figura.velocidad_x=velocidad #La x de la velocidad tomará el valor velocidad
   self.rotacion-=velocidad  #La rotación se decrementa con el valor de la velocidad
 elif self.pilas.control.izquierda: #Condición para el control de la izquierda
   self.figura.velocidad_x=-velocidad  #La x de la velocidad tomará el valor velocidad
   self.rotacion+=velocidad #La rotación se incrementa con el valor de la velocidad#
 else:
   self.figura.velocidad_x=0  #x de la velocidad toma el valor 0
 if self.si_esta_pisando_suelo(): #Si el actor esta pisando suelo
   if self.pilas.control.arriba and (int(self.figura.velocidad_y))<=0:
     self.figura.impulsar(0,salto)  #Cuando el componente y la velocidad es negativo, la figura se impulsa

self.sensor_pies.x=self.x  #Aplicamos el valor x del sensor de pies, al valor x
self.sensor_pies.y=self.y-20  #Aplicamos el valor y del sensor de pesa, al valor y-20
 if self.si_esta_pisando_suelo(): #Si el actor esta pisando suelo
  self.imagen= "aceituna.png" #Se introduce la imagen aceituna
 else:                                             #sino
  self.imagen="aceituna_risa.png" #Se introduce la imagen aceituna sonriendo

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

#Programa Principal
pilas.actores.vincular(Protagonista) #Indica que  el actor se vincula con la clase protagonista
marc=pilas.actores.Protagonista() #Instucción donde llamamos Marc, al actor protagonista
pilas.ejecutar() #Ejecutar el programa pilasengine


No hay comentarios:

Publicar un comentario