def iniciar(self): log.info("iniciar") # self.sistema = Sistema.obtener_instancia() # self.directorio_cache = os.path.join( self.sistema.directorio_general_cache, Terreno.DirectorioCache) if not os.path.exists(self.directorio_cache): log.warning("se crea directorio_cache: %s" % self.directorio_cache) os.mkdir(self.directorio_cache) # self._establecer_shader() # self.dibujar_normales = config.valbool("terreno.dibujar_normales")
def iniciar(self, parent_node_path, bullet_world, partes=list()): log.info("iniciar") # sistema self.sistema = Sistema.obtener_instancia() # recursos ruta_dir = os.path.join(os.getcwd(), self.directorio_recursos, self.clase) if not os.path.exists(ruta_dir): raise Exception("no existe el directorio '%s'" % (ruta_dir)) archivos = [ archivo for archivo in os.listdir(ruta_dir) if archivo[-4:].lower() == ".egg" or archivo[-4:].lower() == ".bam" ] archivo_actor = "" dict_animaciones = dict() for archivo in archivos: if archivo[:-4] == "actor": archivo_actor = archivo else: dict_animaciones[archivo[:-4]] = Filename.fromOsSpecific( os.path.join(ruta_dir, archivo)) if archivo_actor == "": raise Exception( "no se encontró ningún archivo de actor (actor.[egg|bam]) en '%s'" % ruta_dir) # cuerpo self.bullet_world = bullet_world rb = self._generar_cuerpo_fisica() self.bullet_world.attach(rb) self.cuerpo = parent_node_path.attachNewNode(rb) self.cuerpo.setCollideMask(BitMask32.bit(2)) # actor self.actor = Actor( Filename.fromOsSpecific(os.path.join(ruta_dir, archivo_actor)), dict_animaciones) self.actor.reparentTo(self.cuerpo) self.actor.setZ(-self._ajuste_altura) # partes for parte in partes: self.actor.makeSubpart(parte[0], parte[1], parte[2]) self._partes_actor.append(parte[0]) # shader GestorShader.aplicar(self.actor, GestorShader.ClasePersonaje, 2)