def reproducir_animacion(self, animacion): """ Gestiona la reproducción de animaciones, imágenes y texto en esta pantalla. @param animacion: Indica la animación que debe reproducirse. @type animacion: int """ if animacion == 0: self.elemento_actual = -1 self.anim1.continuar() self.grupo_fondotexto.add(self.caja_texto) self.grupo_palabras.add(self.texto3_2.img_palabras) self.txt_actual = self.texto3_2.img_palabras self.chequeo_palabra(self.txt_actual) if self.parent.config.activar_lector: if self.entrada_primera_vez: self.spserver.processtext2(cont["texto3_2"], self.parent.config.activar_lector) self.entrada_primera_vez = False else: self.spserver.processtext(cont["texto3_2"], self.parent.config.activar_lector) self.anim1.continuar() self.grupo_fondotexto.add(self.caja_texto) self.grupo_palabras.add(self.texto3_2.img_palabras) self.txt_actual = self.texto3_2.img_palabras self.chequeo_palabra(self.txt_actual) if animacion == 1: self.spserver.stopserver() self.elemento_actual = -1 self.ampliar() self.limpiar_grupos() self.parent.changeState(pantalla4.estado(self.parent)) self.chequeo_botones(self.grupo_botones) self.lista_final = self.lista_botones + self.lista_palabra self.lista_final = self.lista_palabra + self.lista_botones self.numero_elementos = len(self.lista_final)
def handleEvents(self, events): """ Evalúa los eventos que se generan en esta pantalla. @param events: Lista de los eventos. @type events: list """ for event in events: if event.type == pygame.QUIT: self.parent.quit() if event.type == pygame.KEYDOWN: self.chequeo_botones(self.grupo_botones) self.lista_final = self.lista_palabra + self.lista_botones self.numero_elementos = len(self.lista_final) if event.key == pygame.K_RIGHT: self.deteccion_movimiento = True self.controlador_lector_evento_K_RIGHT() elif event.key == pygame.K_LEFT: self.controlador_lector_evento_K_LEFT() self.deteccion_movimiento = True elif self.deteccion_movimiento: if event.key == pygame.K_RETURN: if self.x.tipo_objeto == "boton": if self.x.id == "config": self.limpiar_grupos() self.parent.pushState(menucfg.estado(self.parent, self.previa)) elif self.x.id == "sig": self.ampliar() self.limpiar_grupos() self.parent.changeState(pantalla4.estado(self.parent)) elif self.x.id == "home": self.limpiar_grupos() self.parent.changeState(pantalla2.estado(self.parent)) elif self.x.tipo_objeto == "palabra": self.spserver.processtext(cp[self.x.codigo], self.parent.config.activar_lector) self.deteccion_movimiento = False elif event.key == pygame.K_SPACE: self.spserver.processtext(cont["texto3_2"], self.parent.config.activar_lector) if pygame.sprite.spritecollideany(self.raton, self.grupo_palabras): sprite = pygame.sprite.spritecollide(self.raton, self.grupo_palabras, False) if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: if sprite[0].tipo_objeto == "palabra": if sprite[0].interpretable == True: self.parent.interpretar(sprite[0].codigo) if pygame.sprite.spritecollideany(self.raton, self.grupo_botones): sprite = pygame.sprite.spritecollide(self.raton, self.grupo_botones, False) if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: if sprite[0].id == "sig": self.deteccion_movimiento = False if self.anim_actual <= 3: self.anim_actual += 1 self.reproducir_animacion(self.anim_actual) elif sprite[0].id == "config": self.limpiar_grupos() self.parent.pushState(menucfg.estado(self.parent, self.previa)) elif sprite[0].id == "home": self.limpiar_grupos() self.parent.changeState(pantalla2.estado(self.parent)) elif sprite[0].id == "repe": self.limpiar_grupos() self.resume() self.minimag(events)