Advertisement
Guest User

Test jump PIlas Engine

a guest
Nov 30th, 2014
330
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.71 KB | None | 0 0
  1. import random
  2.  
  3. import pilasengine
  4. from pilasengine.escenas import Normal
  5. from pilasengine.actores import Actor
  6.  
  7. pilas = pilasengine.iniciar()
  8.  
  9.  
  10. class ActorBloque(Actor):
  11.  
  12.     ''' Ejemplo de Actor bloque donde pueden saltar los actores '''
  13.  
  14.     def iniciar(self, x=0, y=0):
  15.         self.imagen = 'disparo_laser.png'
  16.         self.x = x
  17.         self.y = y
  18.         self.figura_de_colision = self.pilas.fisica.Rectangulo(ancho=200,
  19.                                                                alto=20, dinamica=False, amortiguacion=0,
  20.                                                                restitucion=0, friccion=10, densidad=0)
  21.  
  22.  
  23. class ActorSaltarin(Actor):
  24.  
  25.     ''' Actor Salatarin '''
  26.  
  27.     def iniciar(self, x=-20, y=0):
  28.         self.imagen = 'alien.png'
  29.         self.x = x
  30.         self.y = y
  31.         self.imitar(self.pilas.fisica.Rectangulo(ancho=30,
  32.                                                  alto=80,
  33.                                                  amortiguacion=0,
  34.                                                  restitucion=0, friccion=0,
  35.                                                  densidad=0))
  36.  
  37.         self.control = self.pilas.escena_actual().control
  38.         self.puede_saltar = False
  39.         self.escala = .6
  40.  
  41.     def actualizar(self):
  42.  
  43.         pilas.camara.y = self.y
  44.  
  45.         if self.control.boton and self.puede_saltar:
  46.             self.control.boton = False
  47.             self.puede_saltar = False
  48.             self.figura_de_colision.impulsar(0, 9)
  49.  
  50.         if self.control.derecha:
  51.             self.figura_de_colision.x += 1
  52.         elif self.control.izquierda:
  53.             self.figura_de_colision.x -= 1
  54.  
  55.  
  56. class EscenaPersonalizada(Normal):
  57.  
  58.     ''' Escena Personalizada donde hay un actor que puede
  59.    saltar sobre unos bloques '''
  60.  
  61.     def iniciar(self):
  62.         self.pilas.fondos.Galaxia()
  63.         self.pilas.fisica.eliminar_techo()
  64.  
  65.         # Bloques sobre los cuales puede saltar el actor
  66.         self.bloques = self.pilas.actores.Grupo()
  67.         for i in range(10):
  68.             x = random.randint(-100, 100)
  69.             y = -100 + i * 170
  70.             self.bloques.agregar(ActorBloque(pilas, x, y))
  71.  
  72.         self.bloques.escala_x = 6
  73.  
  74.         self.actor_saltarin = ActorSaltarin(pilas)
  75.  
  76.         pilas.colisiones.agregar(self.actor_saltarin,
  77.                                  self.bloques, self.colision_bloques)
  78.  
  79.     def colision_bloques(self, actor1, actor2):
  80.         ''' Accion a realizar cuando 'actor_saltarin' toca a algun bloque'''
  81.         self.actor_saltarin.puede_saltar = True
  82.  
  83.  
  84. pilas.definir_escena(EscenaPersonalizada(pilas))
  85. pilas.depurador.definir_modos(fisica=True)
  86. pilas.avisar("Salta con SPACE y mueve con flechas")
  87. pilas.ejecutar()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement