diff options
author | flavio <fdanesse@gmail.com> | 2012-04-07 18:04:58 (GMT) |
---|---|---|
committer | flavio <fdanesse@gmail.com> | 2012-04-07 18:04:58 (GMT) |
commit | b9b2953f2c9d418d3420311fc0c092328a39f13e (patch) | |
tree | 4d5f5ec86827eadf2889f0e070705f12bb0ce90b /FGR_T0502.py | |
parent | b4e54fc9a2b3955689e48c02402d8090516ccae1 (diff) |
Correcciones
Diffstat (limited to 'FGR_T0502.py')
-rw-r--r-- | FGR_T0502.py | 646 |
1 files changed, 323 insertions, 323 deletions
diff --git a/FGR_T0502.py b/FGR_T0502.py index 09dc9eb..9ea4b57 100644 --- a/FGR_T0502.py +++ b/FGR_T0502.py @@ -26,26 +26,22 @@ class FGR_T0502(gtk.Widget): def __init__(self, usuario): gtk.Widget.__init__(self) self.usuario = usuario - self.nombre = "Memory" self.ventana = None + self.nombre = "Crucigrama." self.estado = False self.fondo = None self.reloj = None self.puntos = 0 - # Sprites self.textos = None self.botonesmenu = None self.controles = None self.seniales = None - self.senial1_select = None - self.senial2_select = None - + self.senial_select = None # sonidos self.sonido_error = None self.sonido_exito = None self.sound_select = None - # Escalado self.ventana_real = None self.resolucionreal = None @@ -110,24 +106,37 @@ class FGR_T0502(gtk.Widget): pygame.display.update() def reset(self): - self.puntos = 0 + 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.seniales.init() + + def toma(self, boton): + if boton.ubicado: return + self.sound_select.play() + self.senial_select = boton + self.seniales.seleccionar(self.senial_select) + + def deja(self, flecha): + if not self.senial_select: return + if self.senial_select.get_text() == flecha.nombre: + self.sonido_exito.play() + self.puntos += 10 + self.controles.actualiza_puntos() + self.senial_select.marcar() + self.senial_select = None + self.seniales.marcar(flecha) self.verificar() + else: + self.sonido_error.play() + self.controles.cronometro.cron.segundos_transcurridos += 5 + def verificar(self): - if self.senial1_select and self.senial2_select: + faltan = False + for boton in self.seniales.botones: + if not boton.ubicado: + faltan = True + break + if not faltan: self.ventana.blit(self.fondo, (0,0)) self.seniales.draw(self.ventana) self.controles.draw(self.ventana) @@ -135,23 +144,7 @@ class FGR_T0502(gtk.Widget): 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 + return self.victory() def victory(self): pygame.mixer.music.unpause() @@ -164,8 +157,8 @@ class FGR_T0502(gtk.Widget): 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." + text1= "Muy bien, ahora saben cuáles son las partes más importantes de una bici y " + text2= "gracias a eso consiguieron 1 sticker más. Sigan adelante!" mensaje= Mensaje(self, "Victory", text1, text2) self.fondo= self.fondo1 self.ventana.blit(self.fondo, (0,0)) @@ -184,7 +177,7 @@ class FGR_T0502(gtk.Widget): def game_over(self, jamcron): pygame.mixer.music.unpause() - self.controles.update() + self.controles.update() # para actualizar imagen de progressbar del reloj self.controles.stop() self.controles.actualiza_puntos() self.ventana.blit(self.fondo, (0,0)) @@ -213,43 +206,45 @@ class FGR_T0502(gtk.Widget): # ----------- 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.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 + 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_T0502() - self.fondo2 = JAMG.pegar_imagenes_centradas(self.fondo2, self.fondo1.copy()) - self.textos = Textos_Intro() - self.botonesmenu = ButtonsMenu(self) + 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_T0502() + 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.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: + tecla= event.key + if tecla== pygame.K_ESCAPE: pygame.event.clear() - return self.run_dialog_intro(None) + #return self.run_dialog_intro(None) + return self.salir() def run_Instruc(self): - self.fondo = G.get_instruc("502") + self.fondo= G.get_instruc("502") 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": + while self.estado== "Instruc": self.reloj.tick(35) while gtk.events_pending(): gtk.main_iteration(False) @@ -261,6 +256,7 @@ class FGR_T0502(gtk.Widget): 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) @@ -286,7 +282,6 @@ class FGR_T0502(gtk.Widget): 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() @@ -294,7 +289,7 @@ class FGR_T0502(gtk.Widget): def ok_intro(self, button): return self.salir(False) def cancel_intro(self, button): - self.estado = "Intro" + self.estado= "Intro"''' # ----------- EVENTOS en MENU --------------- # ----------- EVENTOS en JUEGO --------------- @@ -331,7 +326,6 @@ class FGR_T0502(gtk.Widget): 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)) @@ -344,315 +338,312 @@ class FGR_T0502(gtk.Widget): self.controles.play() def ok(self, button): - self.estado = "Intro" + #self.estado = "Intro" + self.salir() def cancel(self, button): - self.estado = "Game" + self.estado= "Game" # ----------- EVENTOS en JUEGO --------------- - def salir(self, valor = None): + def salir(self, valor= None): self.estado = False self.emit("run_grupo", "grupo5", self.puntos) -# -------- CONTROLES ---------- -''' -class Controles(pygame.sprite.OrderedUpdates): - def __init__(self, main): - pygame.sprite.OrderedUpdates.__init__(self) - self.main = main - self.flecha = None - self.titulo = None - self.puntaje = None - self.cronometro = None - self.progress_reloj = None - self.sonidos_reloj = None - self.user = None - - self.load_sprites() - - def load_sprites(self): - imagen = self.main.usuario['personaje'] - self.user = JAMButton(self.main.usuario['nombre'],None) - self.user.set_imagen(origen = imagen, tamanio = (60,60)) - self.user.set_colores(colorbas = (0,153,255,255), - colorbor = (0,153,255,255), colorcara = (0,153,255,255)) - self.user.set_tamanios(tamanio = (80,80), grosorbor = 1, detalle = 1, espesor = 1) - ww, hh = self.user.get_tamanio() - w,h = G.RESOLUCION - self.user.set_posicion(punto = (w - ww - 10, 25)) - self.user.connect(callback = None, sonido_select = None) - self.add(self.user) - - imagen= G.get_Flecha() - self.flecha= JAMButton("",None) - self.flecha.set_imagen(origen= imagen, tamanio=(100,55)) - self.flecha.set_colores(colorbas=JAMG.get_negro(), colorcara=JAMG.get_negro()) - self.flecha.set_tamanios(tamanio=(0,0), grosorbor=1, detalle=1, espesor=1) - self.flecha.set_posicion(punto= (10,10)) - self.flecha.connect (callback= self.main.run_dialog_game) - self.add(self.flecha) - - x,y= self.flecha.posicion - w,h= self.flecha.get_tamanio() - x+= w - ancho= G.RESOLUCION[0]/2 - x - cartel_titulo= pygame.sprite.Sprite() - cartel_titulo.image= G.get_Imagen_Cartel1() - cartel_titulo.image= pygame.transform.scale(cartel_titulo.image.copy(), (ancho,cartel_titulo.image.get_size()[1])) - cartel_titulo.rect= cartel_titulo.image.get_rect() - cartel_titulo.rect.x= x - cartel_titulo.rect.y= -60 - self.add(cartel_titulo) - - self.titulo= JAMLabel(self.main.nombre) - self.titulo.set_text(color=JAMG.get_blanco()) - fuente, tamanio= JAMG.get_Font_fawn() - self.titulo.set_font_from_file(fuente, tamanio= 40) - w,h= G.RESOLUCION - x,y= (cartel_titulo.rect.x + 50, 10) - self.titulo.set_posicion(punto= (x,y)) - self.add(self.titulo) - - self.puntaje= JAMLabel("%s" %(self.main.puntos)) - self.puntaje.set_text(color=JAMG.get_blanco()) - fuente, tamanio= JAMG.get_Font_fawn() - self.puntaje.set_font_from_file(fuente, tamanio= 40) - w,h= G.RESOLUCION - self.add(self.puntaje) - - self.sonidos_reloj= G.get_sound_clock() - - from BiblioJAM.JAMCron import JAMCron - self.cronometro= JAMCron() - x,y= (0-self.cronometro.cron.rect.w-1, 0-self.cronometro.cron.rect.h-1) - self.cronometro.cron.set_posicion(punto= (x,y)) - self.cronometro.set_callback(self.main.game_over) - self.cronometro.set_alarma(tiempo = (1,30), duracion = 3) - self.add(self.cronometro) - - self.progress_reloj= ProgressBar(self.main) - self.add(self.progress_reloj) - - def actualiza_puntos(self): - puntos = "%s" %(self.main.puntos) - self.puntaje.set_text(texto= puntos) - x,y = self.user.get_posicion() - w,h = self.puntaje.get_tamanio() - x -= w+10 - self.puntaje.set_posicion(punto= (x,y)) - - def switching_game(self, button): - self.main.estado= "Intro" - return self.main.run() - - def init(self): - sound= self.sonidos_reloj[0] - self.cronometro.set_sound(sound) - self.cronometro.reset() - self.actualiza_puntos() - self.cronometro.play() - def stop(self): - self.cronometro.pause() - def play(self): - self.cronometro.play() - -class ProgressBar(pygame.sprite.Sprite): - def __init__(self, main): - pygame.sprite.Sprite.__init__(self) - self.main = main - self.acumula = 0 - w,h = G.RESOLUCION - self.tamanio = (w/2-10,10) - self.posicion = (w/2,10) - rect1 = JAMG.get_Rectangulo( JAMG.get_verde1(), self.tamanio) - w,y = rect1.get_size() - a = w/6*3 - rect2 = JAMG.get_Rectangulo( JAMG.get_amarillo1(), (a,self.tamanio[1])) - imagen = JAMG.pegar_imagenes_alineado_derecha(rect2, rect1) - a = w/6 - rect3 = JAMG.get_Rectangulo( JAMG.get_rojo1(), (a,self.tamanio[1])) - self.imagen_original = JAMG.pegar_imagenes_alineado_derecha(rect3, imagen) - self.image = self.imagen_original.copy() - self.rect = self.image.get_rect() - self.rect.x, self.rect.y= self.posicion - - def update(self): - tiempo = self.main.controles.cronometro.cron.segundos_final - transcurridos = self.main.controles.cronometro.get_tiempo_transcurrido() - faltan = self.main.controles.cronometro.cron.segundos_faltan - mitad = tiempo/2 - cuarto = tiempo/4 - if faltan <= mitad: - if faltan > cuarto: - if not self.main.controles.cronometro.sonido == self.main.controles.sonidos_reloj[1]: - self.main.controles.stop() - self.main.controles.cronometro.set_sound(self.main.controles.sonidos_reloj[1]) - self.main.controles.play() - elif faltan <= cuarto: - if not self.main.controles.cronometro.sonido == self.main.controles.sonidos_reloj[2]: - self.main.controles.stop() - self.main.controles.cronometro.set_sound(self.main.controles.sonidos_reloj[2]) - self.main.controles.play() - ancho, alto = self.tamanio - ind = float(float(ancho)/float(self.main.controles.cronometro.cron.segundos_final)) - ancho = float(float(ancho)- float(self.main.controles.cronometro.get_tiempo_transcurrido())*ind) - dif = float(float(self.tamanio[0]) - float(ancho)) - try: - self.image = self.imagen_original.copy().subsurface((dif,0,int(ancho), int(alto))) - except: - self.image = self.imagen_original.copy().subsurface((dif,0,0,0)) - self.rect = self.image.get_rect() - x,y = self.posicion - x += dif - self.rect.x, self.rect.y= (x,y)''' -# -------- CONTROLES ---------- - -# -------- SEÑALES ---------- class Seniales(pygame.sprite.OrderedUpdates): - # Grupo de Señales. def __init__(self, main): pygame.sprite.OrderedUpdates.__init__(self) self.main = main - self.seniales1 = [] - self.seniales2 = [] + self.palabras = {} + self.botones = [] + self.flechas = {} + self.matriz_letras = [] + self.textos = [] self.load_sprites() + self.set_posicion((105, 170)) def load_sprites(self): self.empty() - self.seniales1 = [] - self.seniales2 = [] - for senial in G.get_seniales_FGR_T0502(): - boton = Senial(senial) + self.botones = [] + self.palabras = {} + self.flechas = {} + self.matriz_letras = [] + self.textos = [] + matriz = G.get_letras_FGR_T0502() + for linea in matriz: + fila = [] + for letra in linea: + l = Letra(letra) + fila.append(l) + if bool(letra): self.add(l) + self.matriz_letras.append(fila) + # Verticales + chaleco = [] + for linea in self.matriz_letras[0:7]: + chaleco.append(linea[0]) + self.palabras['CHALECO'] = chaleco + mate = [] + for linea in self.matriz_letras[4:]: + mate.append(linea[5]) + self.palabras['MATE'] = mate + sri = [] + for linea in self.matriz_letras[4:7]: + sri.append(linea[7]) + self.palabras['SRI'] = sri + bocina = [] + for linea in self.matriz_letras[2:]: + bocina.append(linea[9]) + self.palabras['BOCINA'] = bocina + # Horizontales + self.palabras['CELULAR'] = self.matriz_letras[0][0:7] + self.palabras['ATRAS'] = self.matriz_letras[2][0:5] + self.palabras['CODERA'] = self.matriz_letras[5][0:6] + self.palabras['MUSICA'] = self.matriz_letras[4][5:] + + for key in self.palabras.keys(): + boton = Boton(key) boton.connect(callback = self.main.toma, sonido_select = None) - self.seniales1.append(boton) - self.add(boton) - for senial in G.get_seniales_FGR_T0502(): - boton = Senial(senial) - boton.connect(callback = self.main.deja, sonido_select = None) - self.seniales2.append(boton) + self.botones.append(boton) self.add(boton) - def init(self): - seniales = self.seniales1 - w,h = G.RESOLUCION - sep = 30 - x, y = sep, h - contador = 0 - for z in range(len(seniales)): - contador += 1 - random.seed() - senial = random.choice(seniales) - y -= senial.get_tamanio()[1] + sep - senial.set_posicion( (x,y) ) - seniales.remove(senial) - if contador == 3: - contador = 0 - x += senial.get_tamanio()[0] + sep - y = h - seniales = self.seniales2 - contador = 0 - for z in range(len(seniales)): - contador += 1 - random.seed() - senial = random.choice(seniales) - y -= senial.get_tamanio()[1] + sep - senial.set_posicion( (x,y) ) - seniales.remove(senial) - if contador == 3: - contador = 0 - x += senial.get_tamanio()[0] + sep - y = h - -class Senial(JAMButton): - def __init__(self, senial): - JAMButton.__init__(self, '',None) - imagen2, self.nombre = senial - imagen1 = os.path.join(G.IMAGENES, "FGR_T0502", "memory_logo.jpg") - self.set_imagen(origen = imagen1, tamanio=(175, 175)) - self.set_tamanios(tamanio = (175, 175), grosorbor=1, detalle=1, espesor=1) - self.imagen1 = pygame.transform.scale(pygame.image.load(imagen1),(175, 175)) - self.imagen2 = pygame.transform.scale(pygame.image.load(imagen2),(175, 175)) + directorio = os.path.join(G.IMAGENES, 'flechas') + self.flechas['CHALECO'] = Flecha('CHALECO', os.path.join(directorio, 'v_flecha1.png')) + self.flechas['MATE'] = Flecha('MATE', os.path.join(directorio, 'v_flecha5.png')) + self.flechas['SRI'] = Flecha('SRI', os.path.join(directorio, 'v_flecha7.png')) + self.flechas['BOCINA'] = Flecha('BOCINA', os.path.join(directorio, 'v_flecha8.png')) + self.flechas['CELULAR'] = Flecha('CELULAR', os.path.join(directorio, 'flecha2.png')) + self.flechas['ATRAS'] = Flecha('ATRAS', os.path.join(directorio, 'flecha3.png')) + self.flechas['CODERA'] = Flecha('CODERA', os.path.join(directorio, 'flecha4.png')) + self.flechas['MUSICA'] = Flecha('MUSICA', os.path.join(directorio, 'flecha6.png')) + for key in self.flechas.keys(): + flecha = self.flechas[key] + flecha.connect(callback = self.main.deja, sonido_select = None) + self.add(flecha) + + fuente, tamanio = JAMG.get_Font_fawn() + for linea in G.get_Texto_FGR_T0502(): + label = JAMLabel(linea) + label.set_font_from_file(fuente, tamanio = 28) + label.set_text(color = (255,255,255,255)) + self.textos.append(label) + + def set_posicion(self, punto = (0,0)): + pos = punto + x, y = pos + w, h = (0,0) + for fila in self.matriz_letras: + for letra in fila: + letra.set_posicion( (x,y) ) + w,h = letra.get_tamanio() + x += w + y += h + x = pos[0] + + # Verticales + flecha = self.flechas['CHALECO'] + elemento = self.matriz_letras[0][0] + ((a,b), (c,d)) = (elemento.get_posicion(), flecha.get_tamanio()) + flecha.set_posicion( (a,b-d) ) + flecha = self.flechas['MATE'] + elemento = self.matriz_letras[4][5] + ((a,b), (c,d)) = (elemento.get_posicion(), flecha.get_tamanio()) + flecha.set_posicion( (a,b-d) ) + flecha = self.flechas['SRI'] + elemento = self.matriz_letras[4][7] + ((a,b), (c,d)) = (elemento.get_posicion(), flecha.get_tamanio()) + flecha.set_posicion( (a,b-d) ) + flecha = self.flechas['BOCINA'] + elemento = self.matriz_letras[2][9] + ((a,b), (c,d)) = (elemento.get_posicion(), flecha.get_tamanio()) + flecha.set_posicion( (a,b-d) ) + # Horizontales + flecha = self.flechas['CELULAR'] + elemento = self.matriz_letras[0][0] + ((a,b), (c,d)) = (elemento.get_posicion(), flecha.get_tamanio()) + flecha.set_posicion( (a-c,b) ) + flecha = self.flechas['ATRAS'] + elemento = self.matriz_letras[2][0] + ((a,b), (c,d)) = (elemento.get_posicion(), flecha.get_tamanio()) + flecha.set_posicion( (a-c,b) ) + flecha = self.flechas['CODERA'] + elemento = self.matriz_letras[5][0] + ((a,b), (c,d)) = (elemento.get_posicion(), flecha.get_tamanio()) + flecha.set_posicion( (a-c,b) ) + flecha = self.flechas['MUSICA'] + elemento = self.matriz_letras[4][5] + ((a,b), (c,d)) = (elemento.get_posicion(), flecha.get_tamanio()) + flecha.set_posicion( (a-c,b) ) + + ultimo = self.matriz_letras[-1][-1] + x, y = ultimo.get_posicion() + w, h = ultimo.get_tamanio() + posbuttons = (x+w,y+h) + + for fila in self.matriz_letras: + for letra in fila: + if not letra.letra: + fila.remove(letra) + letra.kill() + y = posbuttons[1] + 50 + for boton in self.botones[4:]: + w,h = boton.get_tamanio() + x = posbuttons[0] - w + boton.set_posicion( (x, y) ) + y += h + 10 + y = posbuttons[1] + 50 + posbuttons = (posbuttons[0] - (w+10), posbuttons[1]) + for boton in self.botones[:4]: + w,h = boton.get_tamanio() + x = posbuttons[0] - w + boton.set_posicion( (x, y) ) + y += h + 10 + + x, y = (G.RESOLUCION[0]/2 + 115, 135) + for label in self.textos: + label.set_posicion((x,y)) + y += label.get_tamanio()[1]+10 + + a,b,c,d = (0,0,0,0) + a,b = self.textos[0].get_posicion() + for label in self.textos: + e,f = label.get_tamanio() + if e > c: c = e + if f > d: d = f + sombra = JAMG.get_Sombra((c+40, self.textos[-1].get_posicion()[1]-b + d + 40), + (92,193,235,255), 80) + sombra = sombra.sprites()[0] + sombra.rect.x, sombra.rect.y = (a-20, b-20) + self.add(sombra) + for label in self.textos: + self.add(label) + + def seleccionar(self, boton): + for bot in self.botones: + if not bot.ubicado: + bot.connect(callback = self.main.toma, sonido_select = None) + bot.reset() + boton.connect(callback = None, sonido_select = None) + boton.seleccionar() + + def marcar(self, flecha): + for letra in self.palabras[flecha.nombre]: + letra.set_text(texto = letra.letra) + flecha.kill() + +class Boton(JAMButton): + def __init__(self, texto): + JAMButton.__init__(self, texto, None) + self.ubicado = False + fuente, tamanio = JAMG.get_Font_fawn() + self.set_font_from_file(fuente, tamanio = 30) + self.set_tamanios(tamanio = (150, 25), grosorbor=1, detalle=1, espesor=1) + self.colorcara, self.colorbase, self.colorborde, g, d, e = JAMG.get_default_jambutton_values() + self.colormarca = (92,193,235,255) self.reset() def reset(self): - self.final_unselect = self.imagen1.copy() - self.final_select = JAMG.get_my_surface_whit_border(self.imagen1.copy(), (255,255,255,255), 10) - self.image = self.final_unselect + self.set_colores(colorbas = self.colorbase, + colorbor = self.colorborde, colorcara = self.colorcara) def seleccionar(self): - self.final_unselect = self.imagen2.copy() - self.final_select = self.imagen2.copy() + self.set_colores(colorbas = self.colormarca, + colorbor = self.colormarca, colorcara = self.colormarca) + def marcar(self): + self.ubicado = True + self.connect(callback = None, sonido_select = None) + self.set_colores(colorbas = self.colorbase, + colorbor = self.colorbase, colorcara = self.colorbase) + +class Flecha(JAMButton): + def __init__(self, nombre, imagen): + JAMButton.__init__(self, '',imagen) + self.nombre = nombre + self.set_tamanios(tamanio = (50, 50), grosorbor=1, detalle=1, espesor=1) + imagen = pygame.image.load(imagen) + self.final_select = JAMG.get_Rectangulo((240,150,0,255), (50,50)) + self.final_select.blit(imagen,(0,0)) + self.final_unselect = imagen self.image = self.final_unselect + self.rect = self.image.get_rect() -# -------- SEÑALES ---------- +class Letra(JAMButton): + def __init__(self, letra): + JAMButton.__init__(self, '',None) + fuente, tamanio = JAMG.get_Font_fawn() + self.set_font_from_file(fuente, tamanio = 30) + self.letra = letra + #if self.letra: self.set_text(texto = self.letra) + self.set_tamanios(tamanio = (50, 50), grosorbor=1, detalle=1, espesor=1) + def update(self): + pass # --------- TEXTOS ---------------- class Textos_Intro(pygame.sprite.OrderedUpdates): def __init__(self): pygame.sprite.OrderedUpdates.__init__(self) - self.base = None - self.labels = [] - self.gruber = None + self.base= None + self.labels= [] + self.gruber= None + self.base= None self.load_textos() self.set_posicion_labels() - self.base = self.get_base() - self.gruber = self.get_gruber() + self.base= self.get_base() + self.gruber= self.get_gruber() self.add(self.base) self.add(self.labels) self.add(self.gruber) def get_gruber(self): - gruber = pygame.sprite.Sprite() - gruber.image = G.get_Imagen_Gruber1() - gruber.rect = gruber.image.get_rect() - w,h = G.RESOLUCION + gruber= pygame.sprite.Sprite() + gruber.image= G.get_Imagen_Gruber1() + gruber.rect= gruber.image.get_rect() + w,h= G.RESOLUCION gruber.rect.x, gruber.rect.y= (w/2-gruber.rect.w/2, self.base.rect.y-gruber.rect.h) return gruber def get_base(self): - w,h = self.get_dimensiones() - w += 20 - h += 20 - base = pygame.sprite.Sprite() + w,h= self.get_dimensiones() + w+= 20 + h+= 20 + base= pygame.sprite.Sprite() superficie = pygame.Surface( (w,h), flags=SRCALPHA ) superficie.fill((0,0,0,150)) - base.image = superficie - base.rect = base.image.get_rect() - base.rect.x, base.rect.y = (G.RESOLUCION[0]/2-base.rect.w/2, self.labels[0].rect.y-10) + base.image= superficie + base.rect= base.image.get_rect() + base.rect.x, base.rect.y= (G.RESOLUCION[0]/2-base.rect.w/2, self.labels[0].rect.y-10) return base def load_textos(self): - textos = G.get_Textos_FGR_T0101() + textos= G.get_Textos_FGR_T0301() for linea in textos: - label = Sprite_Texto(linea) + label= Sprite_Texto(linea) self.labels.append(label) def set_posicion_labels(self): - w,h = G.RESOLUCION - x, y = (0,h/2-30) + w,h= G.RESOLUCION + x, y= (0,h/2-30) for label in self.labels: - x = w/2-label.rect.w/2 - label.rect.x = x - label.rect.y = y - y += label.rect.h + x= w/2-label.rect.w/2 + label.rect.x= x + label.rect.y= y + y+= label.rect.h def get_dimensiones(self): - w,h = (0,0) + w,h= (0,0) for label in self.labels: - if label.rect.w > w: w = label.rect.w - h += label.rect.h + if label.rect.w > w: w= label.rect.w + h+= label.rect.h return (w,h) class Sprite_Texto(pygame.sprite.Sprite): def __init__(self, texto): pygame.sprite.Sprite.__init__(self) - string_to_render = "" - fuente = self.get_Font() + string_to_render= "" + fuente= self.get_Font() string_to_render = unicode( texto.decode("utf-8") ) self.image = fuente.render(string_to_render, 1, JAMG.get_blanco()) - self.rect = self.image.get_rect() + self.rect= self.image.get_rect() def get_Font(self): - fuente, tamanio = JAMG.get_Font_fawn() + fuente, tamanio= JAMG.get_Font_fawn() return pygame.font.Font(fuente, tamanio) # --------- TEXTOS ---------------- @@ -662,23 +653,22 @@ class ButtonsMenu(pygame.sprite.OrderedUpdates): pygame.sprite.OrderedUpdates.__init__(self) self.main = main imagen = G.get_Flecha() - salir = JAMButton("",None) salir.set_imagen(origen = imagen, tamanio=(100,55)) - salir.set_colores(colorbas =JAMG.get_negro(), colorcara=JAMG.get_negro()) - salir.set_tamanios(tamanio =(0,0), grosorbor=1, detalle=1, espesor=1) - salir.set_posicion(punto = (10,10)) - salir.connect (callback = self.main.run_dialog_intro) + salir.set_colores(colorbas=JAMG.get_negro(), colorcara=JAMG.get_negro()) + salir.set_tamanios(tamanio=(0,0), grosorbor=1, detalle=1, espesor=1) + salir.set_posicion(punto= (10,10)) + #salir.connect (callback = self.main.run_dialog_intro) + salir.connect (callback = self.main.salir, sonido_select = None) self.add(salir) - - jugar = JAMButton("Jugar",None) + jugar= JAMButton("Jugar",None) jugar.set_text(color=JAMG.get_blanco()) - fuente, tamanio = JAMG.get_Font_fawn() + fuente, tamanio= JAMG.get_Font_fawn() jugar.set_font_from_file(fuente, tamanio= 50) jugar.set_colores(colorbas=JAMG.get_negro(), colorcara=JAMG.get_negro()) jugar.set_tamanios(tamanio=(200,0), grosorbor=1, detalle=1, espesor=1) - w,h = G.RESOLUCION - ww,hh = jugar.get_tamanio() + w,h= G.RESOLUCION + ww,hh= jugar.get_tamanio() jugar.set_posicion(punto= (w-ww-10,h-hh-10)) jugar.connect (callback= self.run_Instruc) self.add(jugar) @@ -699,23 +689,29 @@ class ButtonsMenu(pygame.sprite.OrderedUpdates): class Mensaje(pygame.sprite.OrderedUpdates): def __init__(self, main, opcion, text1, text2): pygame.sprite.OrderedUpdates.__init__(self) + self.main= main self.estado= True + self.base= None self.label1= None self.label2= None self.labels= [] self.gruber= None + self.label1= Sprite_Texto(text1) self.label2= Sprite_Texto(text2) self.labels= [self.label1, self.label2] + self.x_final_label1= 0 self.x_final_label2= 0 + self.init() self.base= self.get_base() if opcion== "Victory": self.gruber= self.get_gruber2() elif opcion== "End": self.gruber= self.get_gruber3() + self.add(self.base) self.add(self.labels) self.add(self.gruber) @@ -724,10 +720,12 @@ class Mensaje(pygame.sprite.OrderedUpdates): w,h= G.RESOLUCION w1,h1= (self.label1.rect.w, self.label1.rect.h) w2,h2= (self.label2.rect.w, self.label2.rect.h) + x= 0-w y= h/2-h2/2 self.label2.rect.x, self.label2.rect.y= (x,y) self.x_final_label2= w/2-w2/2 + x= w y= self.label2.rect.y - h2 self.label1.rect.x, self.label1.rect.y= (x,y) @@ -777,6 +775,7 @@ class Mensaje(pygame.sprite.OrderedUpdates): final= False else: self.label2.rect.x= self.x_final_label2 + x,y,w,h= self.label1.rect if x > self.x_final_label1: x-= 60 @@ -784,6 +783,7 @@ class Mensaje(pygame.sprite.OrderedUpdates): final= False else: self.label1.rect.x= self.x_final_label1 + if final== True: self.label2.rect.x= self.x_final_label2 self.label1.rect.x= self.x_final_label1 |