Home | Trees | Indices | Help |
---|
|
1 # -*- encoding: utf-8 -*- 2 # pilas engine - a video game framework. 3 # 4 # copyright 2010 - hugo ruscitti 5 # license: lgplv3 (see http://www.gnu.org/licenses/lgpl.html) 6 # 7 # website - http://www.pilas-engine.com.ar 8 9 import pilas 10 from pilas import tareas, colisiones, pytweener, camara 11 from pilas.evento import Evento 12 1315 """ Escena base abstracta de la que deben heredar el resto de escenas. 16 17 >>> class MiEscena(Base): 18 >>> 19 >>> def __init__(self): 20 >>> Base.__init__(self) 21 >>> 22 >>> def iniciar(self): 23 >>> fondo = pilas.fondos.Color(pilas.colores.grisclaro) 24 25 Si heredas de esta clase DEBES redefinir el método "iniciar". 26 Como se muestra en el ejemplo anterior. 27 """13029 30 # Identificador de la escena. Sólo util para efectuar algún debug. 31 self.id = "" 32 33 # Actores que participan en la escena. 34 self.actores = [] 35 36 # Camara de la escena. 37 self.camara = camara.Camara(self) 38 39 # Eventos asociados a la escena. 40 self.mueve_camara = Evento('mueve_camara') # ['x', 'y', 'dx', 'dy'] 41 self.mueve_mouse = Evento('mueve_mouse') # ['x', 'y', 'dx', 'dy'] 42 self.click_de_mouse = Evento('click_de_mouse') # ['button', 'x', 'y'] 43 self.termina_click = Evento('termina_click') # ['button', 'x', 'y'] 44 self.mueve_rueda = Evento('mueve_rueda') # ['delta'] 45 self.pulsa_tecla = Evento('pulsa_tecla') # ['codigo', 'texto'] 46 self.suelta_tecla = Evento('suelta_tecla') # ['codigo', 'texto'] 47 self.pulsa_tecla_escape = Evento('pulsa_tecla_escape') # [] 48 self.actualizar = Evento('actualizar') # [] 49 self.log = Evento('log') # ['data'] 50 51 self.control = pilas.control.Control(self) 52 53 # Gestor de tareas 54 self.tareas = tareas.Tareas() 55 56 # Gestor de colisiones 57 self.colisiones = colisiones.Colisiones() 58 59 # Generador de interpolaciones 60 self.tweener = pytweener.Tweener() 61 62 # Administrador de la fisica de la escena. 63 self.fisica = pilas.mundo.crear_motor_fisica() 64 65 # Control para saber si se ha iniciado la escena y poder actualizarla. 66 self.iniciada = False6769 """ Este método debe ser reimplementado en todas las clases que 70 hereden de ella. 71 72 >>> def iniciar(self): 73 >>> fondo = pilas.fondos.Color(pilas.colores.grisclaro) 74 75 """ 76 raise Exception("Debes de re-definir el metodo iniciar.")7779 """ Este método es llamado por el gestor de escenas cuando se 80 ::almacena:: una escena para llamar a otra nueva. 81 82 >>> pilas.almacenar_escena(EscenaDeOpciones()) 83 84 Al efectuar esta instrucción el gestor llamará primero a nuestro 85 método ::pausar:: antes de cambiar a la escena que le hemos indicado. 86 """ 87 pass8890 """ Este método es llamado por el gestor de escenas cuando se 91 ::recupera:: una escena que habia sido almacenada anteriormente. 92 93 >>> pilas.recuperar_escena() 94 95 Al efectuar esta instrucción el gestor llamará primero a nuestro 96 método ::reanudar:: antes de cambiar a la escena que habiamos 97 almacenado. 98 """ 99 pass100 101 # Estos metodos no deben ser sobreescritos en las clases que 102 # hereden de ella. 103 106 109111 self.tweener.update(16) 112 self.tareas.actualizar(1 / 60.0) 113 self.colisiones.verificar_colisiones()114116 if self.fisica: 117 # Solo actualizamos la fisica si existen más de 4 bodies. 118 # Ya que las paredes ya vienen definidas al crear la fisica. 119 if len(self.fisica.mundo.bodies) > 4: 120 self.fisica.actualizar()121123 for actor in self.actores: 124 actor.destruir() 125 126 self.tareas.eliminar_todas() 127 self.tweener.eliminar_todas() 128 if self.fisica: 129 self.fisica.reiniciar()
Home | Trees | Indices | Help |
---|
Generated by Epydoc 3.0.1 on Sun Jan 27 23:57:22 2013 | http://epydoc.sourceforge.net |