En el siguiente apartado examinaremos el código del juego plataformas.
import pilasengine #importación de todo el modulo de pilasengine
pilas = pilasengine.iniciar( ) #inicio del programa
pilas.reiniciar_si_cambia(__file__) #instrucción para tener mayor fluidez
mapa = pilas.actores.MapaTiled('plataformas.tmx', densidad=0, #instrucción para aplicar física al
restitucion=0, friccion=0, amortiguacion=0) fondo del juego
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 tener el fondo "Tarde"
class Protagonista(pilasengine.actores.Actor): #instrucción para crear una nueva clase llamada "Protagonista" donde determinaremos 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 sueloo
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 esté en el suelo
self.imagen= "aceituna.png" #instrucción para que 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) #vinculo del actor con la classe protagonista
prota=pilas.actores.Protagonista() #instrucción para llamar al actor protagonista
pilas.ejecutar() #instrucción para que ejecute el program
No hay comentarios:
Publicar un comentario