def load(self): pygame.event.set_blocked([ JOYAXISMOTION, JOYBALLMOTION, JOYHATMOTION, JOYBUTTONUP, JOYBUTTONDOWN, KEYUP, USEREVENT ]) pygame.event.set_allowed([ MOUSEMOTION, MOUSEBUTTONUP, MOUSEBUTTONDOWN, KEYDOWN, VIDEORESIZE, VIDEOEXPOSE, QUIT, ACTIVEEVENT ]) pygame.mouse.set_visible(True) A, B = G.RESOLUCION self.ventana = pygame.Surface((A, B), flags=HWSURFACE) self.ventana_real = pygame.display.get_surface() C = pygame.display.Info().current_w D = pygame.display.Info().current_h self.resolucionreal = (C, D) self.VA = float(C) / float(A) self.VH = float(D) / float(B) self.fondo1, self.fondo2 = G.get_Fondos_FGR_T0302() self.textos = Textos_Intro() self.botonesmenu = ButtonsMenu(self) from Globals import Controles self.controles = Controles(self) self.seniales = Seniales(self) self.sonido_error, self.sonido_exito = G.get_Sonidos() self.sound_select = JAMG.get_sound_select() self.reloj = pygame.time.Clock()
class FGR_T0103(gtk.Widget): __gsignals__ = {"run_grupo":(gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (gobject.TYPE_STRING,gobject.TYPE_INT))} def __init__(self, usuario): gtk.Widget.__init__(self) self.usuario = usuario self.nombre = "Memorizando Señales." self.ventana = None self.estado = False self.fondo = None self.reloj = None self.puntos = 0 self.textos = None self.botonesmenu = None self.controles = None self.seniales = None self.senial1_select = None self.senial2_select = None # sonidos self.sonido_error = None self.sonido_exito = None self.sound_select = None # Escalado self.ventana_real = None self.resolucionreal = None self.VA = None self.VH = None self.load() self.estado = "Intro" def run(self): if self.estado == "Intro": self.controles.stop() self.fondo = self.fondo1 return self.run_menu() elif self.estado == "Game": self.puntos = 0 self.fondo = self.fondo2 self.reset() return self.run_juego() def run_menu(self): self.ventana.blit(self.fondo, (0,0)) self.textos.draw(self.ventana) self.botonesmenu.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() while self.estado == "Intro": self.reloj.tick(35) while gtk.events_pending(): gtk.main_iteration(False) G.Traduce_posiciones(self.VA, self.VH) self.textos.clear(self.ventana, self.fondo) self.botonesmenu.clear(self.ventana, self.fondo) self.botonesmenu.update() self.handle_event_Intro() pygame.event.clear() self.textos.draw(self.ventana) self.botonesmenu.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() def run_juego(self): pygame.mixer.music.pause() self.ventana.blit(self.fondo, (0,0)) self.seniales.draw(self.ventana) self.controles.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() while self.estado == "Game": self.reloj.tick(35) while gtk.events_pending(): gtk.main_iteration(False) G.Traduce_posiciones(self.VA, self.VH) self.seniales.clear(self.ventana, self.fondo) self.controles.clear(self.ventana, self.fondo) self.seniales.update() self.controles.update() #self.handle_event_Game() pygame.event.clear() self.seniales.draw(self.ventana) self.controles.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() def reset(self): self.puntos = 0 self.controles.init() self.seniales.init() def toma(self, senial): if not self.senial1_select: self.sound_select.play() self.senial1_select = senial self.senial1_select.seleccionar() self.verificar() def deja(self, senial): if not self.senial2_select: self.sound_select.play() self.senial2_select = senial self.senial2_select.seleccionar() self.verificar() def verificar(self): if self.senial1_select and self.senial2_select: self.ventana.blit(self.fondo, (0,0)) self.seniales.draw(self.ventana) self.controles.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() pygame.time.wait(1000) self.ventana.blit(self.fondo, (0,0)) if self.senial1_select.nombre == self.senial2_select.nombre: self.sonido_exito.play() self.puntos += 10 self.controles.actualiza_puntos() self.senial1_select.kill() self.senial2_select.kill() self.senial1_select = None self.senial2_select = None if not self.seniales.sprites(): return self.victory() else: self.sonido_error.play() self.controles.cronometro.cron.segundos_transcurridos += 5 self.senial1_select.reset() self.senial2_select.reset() self.senial1_select = None self.senial2_select = None def victory(self): pygame.mixer.music.unpause() self.controles.stop() self.puntos+= (10*self.controles.cronometro.get_tiempo_restante()) self.controles.actualiza_puntos() self.ventana.blit(self.fondo, (0,0)) self.seniales.draw(self.ventana) self.controles.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() pygame.time.wait(1000) text1= "Muy bien! Ahora formas parte de la pandilla." text2= "Natalia, José y Jacinto están muy contentos, sigue con ellos adelante." mensaje= Mensaje(self, "Victory", text1, text2) self.fondo= self.fondo1 self.ventana.blit(self.fondo, (0,0)) mensaje.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() while mensaje.estado == True: self.reloj.tick(35) mensaje.clear(self.ventana, self.fondo) mensaje.update() mensaje.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() pygame.time.wait(6000) return self.salir(True) def game_over(self, jamcron): pygame.mixer.music.unpause() self.controles.update() self.controles.stop() self.controles.actualiza_puntos() self.ventana.blit(self.fondo, (0,0)) self.seniales.draw(self.ventana) self.controles.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() pygame.time.wait(1000) text1= "Te han Faltado Unos Segundos Para Completar la Actividad." text2= "Prueba Nuevamente." mensaje= Mensaje(self, "End", text1, text2) self.fondo= self.fondo1 self.ventana.blit(self.fondo, (0,0)) mensaje.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() while mensaje.estado == True: self.reloj.tick(35) mensaje.clear(self.ventana, self.fondo) mensaje.update() mensaje.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() pygame.time.wait(6000) return self.salir(False) # ----------- SETEOS ------------- def load(self): pygame.event.set_blocked([JOYAXISMOTION, JOYBALLMOTION, JOYHATMOTION, JOYBUTTONUP, JOYBUTTONDOWN, KEYUP, USEREVENT]) pygame.event.set_allowed([MOUSEMOTION, MOUSEBUTTONUP, MOUSEBUTTONDOWN, KEYDOWN, VIDEORESIZE, VIDEOEXPOSE, QUIT, ACTIVEEVENT]) pygame.mouse.set_visible(True) A, B = G.RESOLUCION self.ventana = pygame.Surface( (A, B), flags=HWSURFACE ) self.ventana_real = pygame.display.get_surface() C = pygame.display.Info().current_w D = pygame.display.Info().current_h self.resolucionreal = (C,D) self.VA = float(C)/float(A) self.VH = float(D)/float(B) self.fondo1, self.fondo2 = G.get_Fondos_FGR_T0103() self.fondo2 = JAMG.pegar_imagenes_centradas(self.fondo2, self.fondo1.copy()) self.textos = Textos_Intro() self.botonesmenu = ButtonsMenu(self) from Globals import Controles self.controles = Controles(self) self.seniales = Seniales(self) self.sonido_error, self.sonido_exito = G.get_Sonidos() self.sound_select = JAMG.get_sound_select() self.reloj = pygame.time.Clock() # ----------- EVENTOS en MENU --------------- def handle_event_Intro(self): for event in pygame.event.get(pygame.KEYDOWN): tecla = event.key if tecla == pygame.K_ESCAPE: pygame.event.clear() #return self.run_dialog_intro(None) return self.salir() def run_Instruc(self): self.fondo = G.get_instruc("103") self.ventana.blit(self.fondo, (0,0)) self.botonesmenu.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() while self.estado == "Instruc": self.reloj.tick(35) while gtk.events_pending(): gtk.main_iteration(False) G.Traduce_posiciones(self.VA, self.VH) self.botonesmenu.clear(self.ventana, self.fondo) self.botonesmenu.update() pygame.event.clear() self.botonesmenu.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() ''' def run_dialog_intro(self, button): from BiblioJAM.JAMDialog import JAMDialog dialog= JAMDialog(mensaje="¿Abandonas el Juego?", funcion_ok=self.ok_intro, funcion_cancel=self.cancel_intro) fuente, tamanio= JAMG.get_Font_fawn() dialog.set_font_from_file(fuente, tamanio= 40) dialog.boton_aceptar.set_font_from_file(fuente, tamanio= 25) dialog.boton_cancelar.set_font_from_file(fuente, tamanio= 25) a,b,c= JAMG.get_estilo_papel_quemado() dialog.set_colors_dialog(base=c, bordes=c) dialog.set_colors_buttons(colorbas=a, colorbor=b, colorcara=c) self.estado= "Dialog" dialog.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() while self.estado== "Dialog": self.reloj.tick(35) while gtk.events_pending(): gtk.main_iteration(False) G.Traduce_posiciones(self.VA, self.VH) dialog.clear(self.ventana, self.fondo) dialog.update() pygame.event.clear() dialog.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() dialog.clear(self.ventana, self.fondo) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() def ok_intro(self, button): return self.salir(False) def cancel_intro(self, button): self.estado = "Intro"''' # ----------- EVENTOS en MENU --------------- ''' # ----------- EVENTOS en JUEGO --------------- def handle_event_Game(self): for event in pygame.event.get(pygame.KEYDOWN): tecla= event.key if tecla== pygame.K_ESCAPE: pygame.event.clear() return self.run_dialog_game(None)''' def run_dialog_game(self, button): self.controles.stop() from BiblioJAM.JAMDialog import JAMDialog dialog= JAMDialog(mensaje="¿Abandonas el Juego?", funcion_ok=self.ok, funcion_cancel=self.cancel) fuente, tamanio= JAMG.get_Font_fawn() dialog.set_font_from_file(fuente, tamanio= 30) dialog.boton_aceptar.set_font_from_file(fuente, tamanio= 30) dialog.boton_cancelar.set_font_from_file(fuente, tamanio= 30) a,b,c= JAMG.get_estilo_papel_quemado() dialog.set_colors_dialog(base=c, bordes=c) dialog.set_colors_buttons(colorbas=a, colorbor=b, colorcara=c) self.estado= "Dialog" dialog.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() while self.estado== "Dialog": self.reloj.tick(35) while gtk.events_pending(): gtk.main_iteration(False) G.Traduce_posiciones(self.VA, self.VH) dialog.clear(self.ventana, self.fondo) dialog.update() pygame.event.clear() dialog.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() if self.estado== "Intro": dialog.clear(self.ventana, self.fondo) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() return self.run() else: dialog.clear(self.ventana, self.fondo) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() self.controles.play() def ok(self, button): #self.estado = "Intro" self.salir() def cancel(self, button): self.estado = "Game" # ----------- EVENTOS en JUEGO --------------- def salir(self, valor = None): self.estado = False self.emit("run_grupo", "grupo1", self.puntos)