def __init__(self, main): pygame.sprite.OrderedUpdates.__init__(self) self.main = main self.botones = {} for imagen in os.listdir(IMAGENES): sonido = os.path.basename(imagen).split(".")[0] + ".ogg" imagen = os.path.join(IMAGENES, imagen) boton = JAMButton("", imagen) boton.set_imagen(origen=imagen) boton.set_tamanios(tamanio=(190, 180), grosorbor=1, espesor=1) self.add(boton) jam_label = JAMLabel("Cantando . . .") jam_label.set_text(tamanio=25, color=(255, 0, 0, 1)) self.botones[boton] = [sonido, jam_label, False, sonido] boton.connect(callback=self.play_canto, sonido_select=None) x = 0 y = 0 contador = 0 for boton in self.sprites(): boton.set_posicion(punto=(x, y)) x += 200 contador += 1 if contador == 6: x = 0 y += boton.get_tamanio()[1] contador = 0
def get_labels_carteles(self, texto, centro): ''' Etiquetas sobre los carteles. ''' label = JAMLabel(texto) label.set_text(color=JAMG.get_blanco()) fuente, tamanio = JAMG.get_Font_fawn() label.set_font_from_file(fuente, tamanio=tamanio) x, y = centro w, h = label.get_tamanio() label.set_posicion(punto=(x - w / 2, y - h / 2)) self.add(label)
def get_sprite_frase(self): labels= [] for frase in self.frase.split("\n"): label= JAMLabel(frase) label.set_text(color= JAMG.get_blanco()) label.set_contenedor(colorbas= JAMG.get_negro(), grosor=1, colorbor=JAMG.get_negro()) label.set_font_from_file(JAMG.get_Font_fawn()[0], tamanio= 50) labels.append(label) return labels
def load_sprites(self): palabras = [ "PEDALES", "INFLADOR", "CUADRO", "LUCES", "FRENOS", "ASIENTO", "PLATO" ] x, y = self.main.seniales.get_posicion() w, h = self.main.seniales.get_tamanio() x += w + 5 for pal in palabras: label = JAMLabel(pal) label.set_font_from_file(JAMG.get_Font_fawn()[0], tamanio=50) label.set_text(color=JAMG.get_blanco()) label.set_posicion(punto=(x, y)) y += label.get_tamanio()[1] + 5 self.add(label)
def __init__(self, senial): JAMButton.__init__(self, '',None) imagen2, self.nombre, categoria = senial imagen1 = os.path.join(G.IMAGENES, "FGR_T0103", "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)) simbolo = pygame.transform.scale(pygame.image.load(imagen2),(120, 120)) fondo = pygame.image.load(os.path.join(G.IMAGENES, "FGR_T0103", "fondo_blanco.jpg")) fondo = pygame.transform.scale(fondo,(175, 175)) texto = JAMLabel(categoria) fuente, tamanio = JAMG.get_Font_fawn() texto.set_font_from_file(fuente, tamanio = 35) w,h = texto.get_tamanio() texto = texto.image fondo.blit(simbolo, (175/2-120/2, 5)) fondo.blit(texto, (175/2-w/2, 175-(h+5))) self.imagen2 = fondo #self.imagen2 = JAMG.pegar_imagenes_centradas(texto, fondo) self.reset()
def get_labels(self, afirmacion): fuente, tamanio = JAMG.get_Font_fawn() tamanio = 50 labels = [] textos = afirmacion.split("\n") for t in textos: label = JAMLabel(t) label.set_text(color=JAMG.get_blanco()) label.set_font_from_file(fuente, tamanio=tamanio) labels.append(label) x, y, w, h = self.sprite_imagen.rect labels.reverse() for label in labels: w1, h1 = label.get_tamanio() y -= h1 + 10 label.set_posicion((G.RESOLUCION[0] / 2 - w1 / 2, y)) return labels
class Frame(pygame.sprite.OrderedUpdates): def __init__(self, main): pygame.sprite.OrderedUpdates.__init__(self) imagen = os.path.join(G.IMAGENES, "Login", "fondo_selecciona.png") imagen = pygame.transform.scale(pygame.image.load(imagen), (800, 570)) fuente, tamanio = JAMG.get_Font_fawn() imagen_teclado = os.path.join(G.IMAGENES, "icono_teclado.jpg") self.main = main self.estado = None self.usuario = { 'nombre': '', 'edad': '', 'escuela': '', 'clase': '', 'departamento': '', 'personaje': '' } self.jacinto = BotonUsuario() imagenusuario = os.path.join(G.IMAGENES, "Login", "jacinto.png") self.jacinto.set_imagen(origen=imagenusuario) self.jacinto.connect(callback=self.select_personaje, sonido_select=None) self.jose = BotonUsuario() imagenusuario = os.path.join(G.IMAGENES, "Login", "jose.png") self.jose.set_imagen(origen=imagenusuario) self.jose.connect(callback=self.select_personaje, sonido_select=None) self.natalia = BotonUsuario() imagenusuario = os.path.join(G.IMAGENES, "Login", "natalia.png") self.natalia.set_imagen(origen=imagenusuario) self.natalia.connect(callback=self.select_personaje, sonido_select=None) self.personajes = [self.jacinto, self.jose, self.natalia] self.entrys = [] self.board = Board() self.fondo = pygame.sprite.Sprite() self.fondo.image = (imagen) self.fondo.rect = self.fondo.image.get_rect() self.add(self.fondo) 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=main.emit_volver, sonido_select=None) self.add(salir) # Ingresar nombre self.label_nombre = JAMLabel("Nombre:") self.label_nombre.set_text(color=(255, 255, 255, 255)) self.label_nombre.set_font_from_file(fuente, tamanio=30) self.add(self.label_nombre) self.entry_nombre = JAMButton("", None) self.entrys.append(self.entry_nombre) self.add(self.entry_nombre) # Ingresar Edad self.label_edad = JAMLabel("Edad:") self.label_edad.set_text(color=(255, 255, 255, 255)) self.label_edad.set_font_from_file(fuente, tamanio=30) self.add(self.label_edad) self.entry_edad = JAMButton("", None) self.entrys.append(self.entry_edad) self.add(self.entry_edad) # Ingresar escuela self.label_escuela = JAMLabel("Escuela:") self.label_escuela.set_text(color=(255, 255, 255, 255)) self.label_escuela.set_font_from_file(fuente, tamanio=30) self.add(self.label_escuela) self.entry_escuela = JAMButton("", None) self.entrys.append(self.entry_escuela) self.add(self.entry_escuela) # Ingresar Clase self.label_clase = JAMLabel("Clase:") self.label_clase.set_text(color=(255, 255, 255, 255)) self.label_clase.set_font_from_file(fuente, tamanio=30) self.add(self.label_clase) self.entry_clase = JAMButton("", None) self.entrys.append(self.entry_clase) self.add(self.entry_clase) # Ingresar departamento self.label_departamento = JAMLabel("Departamento:") self.label_departamento.set_text(color=(255, 255, 255, 255)) self.label_departamento.set_font_from_file(fuente, tamanio=30) self.add(self.label_departamento) self.entry_departamento = JAMButton("", None) self.entrys.append(self.entry_departamento) self.add(self.entry_departamento) for boton in self.entrys: boton.set_alineacion_label("izquierda") boton.set_imagen(origen=imagen_teclado) boton.set_font_from_file(fuente, tamanio=25) boton.set_tamanios(tamanio=(300, 35), grosorbor=1, detalle=1, espesor=1) boton.connect(callback=None, sonido_select=None) self.label_derecho = JAMLabel("Selecciona un Personaje:") self.label_derecho.set_text(color=(255, 255, 255, 255)) self.label_derecho.set_font_from_file(fuente, tamanio=30) self.add(self.label_derecho) self.boton_crear = JAMButton("Crear", None) self.boton_crear.set_font_from_file(fuente, tamanio=30) self.boton_crear.set_tamanios(tamanio=(200, 40), grosorbor=1, detalle=1, espesor=1) self.boton_crear.set_colores(colorbas=(0, 157, 224, 255), colorbor=(0, 157, 224, 255), colorcara=(92, 193, 235, 255)) #self.boton_crear.set_colores(colorbas = (92,193,235,255), # colorbor = (255,255,255,255), colorcara = (92,193,235,255)) self.boton_crear.set_text(color=(255, 255, 255, 255)) self.boton_crear.connect(callback=self.crear_usuario, sonido_select=None) self.add(self.boton_crear) self.add(self.jacinto) self.add(self.jose) self.add(self.natalia) self.entry_nombre.connect(callback=self.enter_nombre) self.entry_edad.connect(callback=self.enter_edad) self.entry_escuela.connect(callback=self.enter_escuela) self.entry_clase.connect(callback=self.enter_clase) self.entry_departamento.connect(callback=self.enter_departamento) def center(self, fondo_size): sep = 10 w, h = fondo_size x, y = (w / 2 - self.fondo.rect.w / 2, h / 2 - self.fondo.rect.h / 2) self.fondo.rect.x, self.fondo.rect.y = (x, y) x += sep * 2 y += sep * 2 self.label_nombre.set_posicion((x, y)) y += self.label_nombre.get_tamanio()[1] self.entry_nombre.set_posicion((x, y)) y += sep * 3 + self.entry_nombre.get_tamanio()[1] self.label_edad.set_posicion((x, y)) y += self.label_edad.get_tamanio()[1] self.entry_edad.set_posicion((x, y)) y += sep * 3 + self.entry_edad.get_tamanio()[1] self.label_escuela.set_posicion((x, y)) y += self.label_escuela.get_tamanio()[1] self.entry_escuela.set_posicion((x, y)) y += sep * 3 + self.entry_escuela.get_tamanio()[1] self.label_clase.set_posicion((x, y)) y += self.label_clase.get_tamanio()[1] self.entry_clase.set_posicion((x, y)) y += sep * 3 + self.entry_clase.get_tamanio()[1] self.label_departamento.set_posicion((x, y)) y += self.label_departamento.get_tamanio()[1] self.entry_departamento.set_posicion((x, y)) w, h = fondo_size mitad = self.fondo.rect.w / 2 ww, hh = self.label_derecho.get_tamanio() x = self.fondo.rect.x + mitad + mitad / 2 - ww / 2 y = self.fondo.rect.y + sep * 7 self.label_derecho.set_posicion((x, y)) ww, hh = self.jacinto.get_tamanio() x = self.fondo.rect.x + mitad + mitad / 2 - ww - sep y = self.label_derecho.get_posicion( )[1] + self.label_derecho.get_tamanio()[1] + sep self.jacinto.set_posicion((x, y)) x = self.jacinto.get_posicion()[0] + self.jacinto.get_tamanio( )[0] + sep self.natalia.set_posicion((x, y)) ww, hh = self.jose.get_tamanio() x = self.fondo.rect.x + mitad + mitad / 2 - ww / 2 y = self.natalia.get_posicion()[1] + self.natalia.get_tamanio( )[1] + sep self.jose.set_posicion((x, y)) ww, hh = self.boton_crear.get_tamanio() x = self.fondo.rect.x + mitad + mitad / 2 - ww / 2 y = self.jose.get_posicion()[1] + self.jose.get_tamanio()[1] + sep * 5 self.boton_crear.set_posicion((x, y)) def crear_usuario(self, button): if self.usuario['nombre'] and self.usuario['edad'] \ and self.usuario['escuela'] and self.usuario['clase'] \ and self.usuario['departamento'] and self.usuario['personaje']: self.main.crear_usuario(self.usuario) else: print "Hay un campo sin llenar" def select_personaje(self, button): self.usuario['personaje'] = button.origen_imagen for personaje in self.personajes: if not personaje == button: personaje.deseleccionar() else: personaje.seleccionar() def enter_nombre(self, button): x, y = button.get_posicion() w, h = button.get_tamanio() self.board.set_posicion(punto=(x + w, y)) self.board.callback_enter = self.add_nombre self.board.text_buffer = button.get_text() self.add(self.board) self.run_board(button) def add_nombre(self, textbuffer): self.estado = None if textbuffer: self.usuario['nombre'] = textbuffer def enter_edad(self, button): x, y = button.get_posicion() w, h = button.get_tamanio() self.board.set_posicion(punto=(x + w, y)) self.board.callback_enter = self.add_edad self.board.text_buffer = button.get_text() self.add(self.board) self.run_board(button) def add_edad(self, textbuffer): self.estado = None if textbuffer: self.usuario['edad'] = textbuffer def enter_escuela(self, button): x, y = button.get_posicion() w, h = button.get_tamanio() self.board.set_posicion(punto=(x + w, y)) self.board.callback_enter = self.add_escuela self.board.text_buffer = button.get_text() self.add(self.board) self.run_board(button) def add_escuela(self, textbuffer): self.estado = None if textbuffer: self.usuario['escuela'] = textbuffer def enter_clase(self, button): x, y = button.get_posicion() w, h = button.get_tamanio() self.board.set_posicion(punto=(x + w, y)) self.board.callback_enter = self.add_clase self.board.text_buffer = button.get_text() self.add(self.board) self.run_board(button) def add_clase(self, textbuffer): self.estado = None if textbuffer: self.usuario['clase'] = textbuffer def enter_departamento(self, button): x, y = button.get_posicion() w, h = button.get_tamanio() self.board.set_posicion(punto=(x + w, y)) self.board.callback_enter = self.add_departamento self.board.text_buffer = button.get_text() self.add(self.board) self.run_board(button) def add_departamento(self, textbuffer): self.estado = None if textbuffer: self.usuario['departamento'] = textbuffer def run_board(self, button): self.estado = "board" self.board.draw(self.main.ventana) pygame.display.update() while self.estado == "board": self.main.reloj.tick(35) while gtk.events_pending(): gtk.main_iteration(False) G.Traduce_posiciones(self.main.VA, self.main.VH) self.clear(self.main.ventana, self.main.fondo) self.board.update() pygame.event.clear() button.set_text(texto=self.board.text_buffer) self.draw(self.main.ventana) self.main.ventana_real.blit( pygame.transform.scale(self.main.ventana, self.main.resolucionreal), (0, 0)) pygame.display.update() self.board.clear(self.main.ventana, self.main.fondo) self.main.ventana_real.blit( pygame.transform.scale(self.main.ventana, self.main.resolucionreal), (0, 0)) pygame.display.update() self.remove(self.board)
def get_sprite_frase(self): label = JAMLabel(self.frase) label.set_text(color=JAMG.get_blanco()) label.set_font_from_file(JAMG.get_Font_fawn()[0], tamanio=50) return label
def load_sprites(self): self.empty() 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.botones.append(boton) self.add(boton) 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 __init__(self, main): pygame.sprite.OrderedUpdates.__init__(self) fuente, tamanio = JAMG.get_Font_fawn() self.main = main self.posiciones_usuarios = (0, 0) imagen = os.path.join(G.IMAGENES, "Login", "fondo_selecciona.png") imagen = pygame.transform.scale(pygame.image.load(imagen), (427, 573)) self.fondo = pygame.sprite.Sprite() self.fondo.image = (imagen) self.fondo.rect = self.fondo.image.get_rect() self.add(self.fondo) self.label = JAMLabel("Selecciona tu Usuario") self.label.set_font_from_file(fuente, tamanio=40) self.label.set_text(color=(255, 255, 255, 255)) self.add(self.label) 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=main.run_dialog_intro) self.add(salir) self.upper = BotonScroll() self.upper.set_imagen("up") self.upper.connect(callback=self.up_user, sonido_select=None) self.add(self.upper) self.down = BotonScroll() self.down.set_imagen("down") self.down.connect(callback=self.down_user, sonido_select=None) self.add(self.down) usuarios = G.get_users() self.usuarios = [] for user in usuarios: usuario = Usuario(user) usuario.connect(callback=self.emit_load_usuario, sonido_select=None) self.usuarios.append(usuario) self.usuariosenmenu = None if len(self.usuarios) <= 3: self.usuariosenmenu = self.usuarios else: self.usuariosenmenu = self.usuarios[:3] if self.usuariosenmenu: self.add(self.usuariosenmenu) self.crear = JAMButton("Crear Nuevo", None) self.crear.set_tamanios(grosorbor=1, detalle=1, espesor=1) self.crear.set_font_from_file(fuente, tamanio=25) self.crear.set_colores(colorbas=(0, 157, 224, 255), colorbor=(0, 157, 224, 255), colorcara=(92, 193, 235, 255)) self.crear.set_text(color=(255, 255, 255, 255)) self.crear.connect(callback=main.crear_usuario, sonido_select=None) self.add(self.crear)
class Selector(pygame.sprite.OrderedUpdates): def __init__(self, main): pygame.sprite.OrderedUpdates.__init__(self) fuente, tamanio = JAMG.get_Font_fawn() self.main = main self.posiciones_usuarios = (0, 0) imagen = os.path.join(G.IMAGENES, "Login", "fondo_selecciona.png") imagen = pygame.transform.scale(pygame.image.load(imagen), (427, 573)) self.fondo = pygame.sprite.Sprite() self.fondo.image = (imagen) self.fondo.rect = self.fondo.image.get_rect() self.add(self.fondo) self.label = JAMLabel("Selecciona tu Usuario") self.label.set_font_from_file(fuente, tamanio=40) self.label.set_text(color=(255, 255, 255, 255)) self.add(self.label) 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=main.run_dialog_intro) self.add(salir) self.upper = BotonScroll() self.upper.set_imagen("up") self.upper.connect(callback=self.up_user, sonido_select=None) self.add(self.upper) self.down = BotonScroll() self.down.set_imagen("down") self.down.connect(callback=self.down_user, sonido_select=None) self.add(self.down) usuarios = G.get_users() self.usuarios = [] for user in usuarios: usuario = Usuario(user) usuario.connect(callback=self.emit_load_usuario, sonido_select=None) self.usuarios.append(usuario) self.usuariosenmenu = None if len(self.usuarios) <= 3: self.usuariosenmenu = self.usuarios else: self.usuariosenmenu = self.usuarios[:3] if self.usuariosenmenu: self.add(self.usuariosenmenu) self.crear = JAMButton("Crear Nuevo", None) self.crear.set_tamanios(grosorbor=1, detalle=1, espesor=1) self.crear.set_font_from_file(fuente, tamanio=25) self.crear.set_colores(colorbas=(0, 157, 224, 255), colorbor=(0, 157, 224, 255), colorcara=(92, 193, 235, 255)) self.crear.set_text(color=(255, 255, 255, 255)) self.crear.connect(callback=main.crear_usuario, sonido_select=None) self.add(self.crear) def up_user(self, button): if len(self.usuarios) <= 3: return else: indice = self.usuarios.index(self.usuariosenmenu[0]) indice -= 1 usuarios = [ self.usuarios[indice], self.usuariosenmenu[0], self.usuariosenmenu[1] ] self.remove(self.usuariosenmenu) self.usuariosenmenu = usuarios self.set_posiciones_usuarios() self.add(self.usuariosenmenu) def down_user(self, button): if len(self.usuarios) <= 3: return else: indice = self.usuarios.index(self.usuariosenmenu[-1]) if indice == len(self.usuarios) - 1: indice = 0 else: indice += 1 usuarios = [ self.usuariosenmenu[1], self.usuariosenmenu[2], self.usuarios[indice] ] self.remove(self.usuariosenmenu) self.usuariosenmenu = usuarios self.set_posiciones_usuarios() self.add(self.usuariosenmenu) def center(self, fondo_size): sep = 10 a, b = self.label.get_tamanio() self.label.set_posicion((fondo_size[0] / 2 - a / 2, sep * 2)) x, y, fondow, fondoh = self.fondo.rect ww, hh = fondo_size x, y = (ww / 2 - fondow / 2, hh / 2 - fondoh / 2) self.fondo.rect.x, self.fondo.rect.y = (x, y) w, h = self.upper.get_tamanio() posx, posy = (x + (fondow / 2 - w / 2), y + sep) self.upper.set_posicion((posx, posy)) w, h = self.down.get_tamanio() posx, posy = (x + (fondow / 2 - w / 2), y + fondoh - h - sep) self.down.set_posicion((posx, posy)) # usuarios x, y = self.upper.get_posicion() w, h = self.upper.get_tamanio() xx, yy = self.down.get_posicion() espacio = (yy - sep) - (y + h + sep) altura = espacio / 3 posy = y + h + sep self.posiciones_usuarios = (x, posy) for user in self.usuarios: user.set_tamanios(tamanio=(w, altura), grosorbor=1, detalle=1, espesor=1) user.set_posicion((x, posy)) posy += altura self.crear.set_tamanios(tamanio=(w, h), grosorbor=1, detalle=1, espesor=1) x, y, ww, h = self.fondo.rect self.crear.set_posicion((fondo_size[0] / 2 - w / 2, y + h + sep * 2)) def emit_load_usuario(self, widget): self.main.emit_load_usuario(widget.usuario) def set_posiciones_usuarios(self): x, posy = self.posiciones_usuarios for user in self.usuariosenmenu: user.set_posicion((x, posy)) posy += user.get_tamanio()[1]
def load_sprites(self): self.empty() self.botones = [] self.palabras = {} self.flechas = {} self.matriz_letras = [] self.textos = [] matriz = G.get_letras_FGR_T0204() 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 acera = [] for linea in self.matriz_letras[0:5]: acera.append(linea[-1]) self.palabras['ACERA'] = acera banquina = [] for linea in self.matriz_letras[2:]: banquina.append(linea[8]) self.palabras['BANQUINA'] = banquina cruzar = [] for linea in self.matriz_letras[2:8]: cruzar.append(linea[6]) self.palabras['CRUZAR'] = cruzar # Horizontales self.palabras['FILA'] = self.matriz_letras[0][9:] self.palabras['BORDE'] = self.matriz_letras[2][8:] self.palabras['ESQUINA'] = self.matriz_letras[4][3:10] self.palabras['OPUESTA'] = self.matriz_letras[6][:7] self.palabras['PEATON'] = self.matriz_letras[-1][6:] for key in self.palabras.keys(): boton = Boton(key) boton.connect(callback = self.main.toma, sonido_select = None) self.botones.append(boton) self.add(boton) directorio = os.path.join(G.IMAGENES, 'flechas') self.flechas['ACERA'] = Flecha('ACERA', os.path.join(directorio, 'v_flecha6.png')) self.flechas['BANQUINA'] = Flecha('BANQUINA', os.path.join(directorio, 'v_flecha2.png')) self.flechas['CRUZAR'] = Flecha('CRUZAR', os.path.join(directorio, 'v_flecha3.png')) self.flechas['FILA'] = Flecha('FILA', os.path.join(directorio, 'flecha7.png')) self.flechas['BORDE'] = Flecha('BORDE', os.path.join(directorio, 'flecha5.png')) self.flechas['ESQUINA'] = Flecha('ESQUINA', os.path.join(directorio, 'flecha1.png')) self.flechas['OPUESTA'] = Flecha('OPUESTA', os.path.join(directorio, 'flecha4.png')) self.flechas['PEATON'] = Flecha('PEATON', os.path.join(directorio, 'flecha8.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_T0204(): label = JAMLabel(linea) label.set_font_from_file(fuente, tamanio = 28) label.set_text(color = (255,255,255,255)) self.textos.append(label)
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.recuadro_select = None self.progress_reloj = None self.decorativas = None self.sonidos_reloj = None self.user = None self.load_sprites() def get_recuadro_select(self, tamanio): ''' Un Sprite para seleccionar las señales. ''' sup = JAMG.get_Rectangulo_Transparente(tamanio) sup = JAMG.get_my_surface_whit_border(sup, JAMG.get_naranja1(), 10) self.recuadro_select = pygame.sprite.Sprite() self.recuadro_select.image = sup self.recuadro_select.rect = self.recuadro_select.image.get_rect() def get_labels_carteles(self, texto, centro): ''' Etiquetas sobre los carteles.''' palabras = texto.split(" ") renglon1 = "%s %s" % (palabras[0], palabras[1]) label = JAMLabel(renglon1) label.set_text(color=JAMG.get_blanco()) fuente, tamanio = JAMG.get_Font_fawn() label.set_font_from_file(fuente, tamanio=30) x, y = centro w, h = label.get_tamanio() label.set_posicion(punto=(x - w / 2, y - h)) self.add(label) if len(palabras) > 2: renglon2 = "" ww, hh = label.get_tamanio() for palabra in palabras[2:]: renglon2 += palabra + " " label = JAMLabel(renglon2) label.set_text(color=JAMG.get_blanco()) fuente, tamanio = JAMG.get_Font_fawn() label.set_font_from_file(fuente, tamanio=30) w, h = label.get_tamanio() label.set_posicion(punto=(x - w / 2, y + hh - h)) self.add(label) else: label.set_posicion(punto=(x - w / 2, y)) 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=(2, 30), duracion=3) self.add(self.cronometro) self.progress_reloj = ProgressBar(self.main) self.add(self.progress_reloj) self.decorativas = ImagenesDecorativas(self) self.add(self.decorativas) 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()
def __init__(self, main): pygame.sprite.OrderedUpdates.__init__(self) imagen = os.path.join(G.IMAGENES, "Login", "fondo_selecciona.png") imagen = pygame.transform.scale(pygame.image.load(imagen), (800, 570)) fuente, tamanio = JAMG.get_Font_fawn() imagen_teclado = os.path.join(G.IMAGENES, "icono_teclado.jpg") self.main = main self.estado = None self.usuario = { 'nombre': '', 'edad': '', 'escuela': '', 'clase': '', 'departamento': '', 'personaje': '' } self.jacinto = BotonUsuario() imagenusuario = os.path.join(G.IMAGENES, "Login", "jacinto.png") self.jacinto.set_imagen(origen=imagenusuario) self.jacinto.connect(callback=self.select_personaje, sonido_select=None) self.jose = BotonUsuario() imagenusuario = os.path.join(G.IMAGENES, "Login", "jose.png") self.jose.set_imagen(origen=imagenusuario) self.jose.connect(callback=self.select_personaje, sonido_select=None) self.natalia = BotonUsuario() imagenusuario = os.path.join(G.IMAGENES, "Login", "natalia.png") self.natalia.set_imagen(origen=imagenusuario) self.natalia.connect(callback=self.select_personaje, sonido_select=None) self.personajes = [self.jacinto, self.jose, self.natalia] self.entrys = [] self.board = Board() self.fondo = pygame.sprite.Sprite() self.fondo.image = (imagen) self.fondo.rect = self.fondo.image.get_rect() self.add(self.fondo) 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=main.emit_volver, sonido_select=None) self.add(salir) # Ingresar nombre self.label_nombre = JAMLabel("Nombre:") self.label_nombre.set_text(color=(255, 255, 255, 255)) self.label_nombre.set_font_from_file(fuente, tamanio=30) self.add(self.label_nombre) self.entry_nombre = JAMButton("", None) self.entrys.append(self.entry_nombre) self.add(self.entry_nombre) # Ingresar Edad self.label_edad = JAMLabel("Edad:") self.label_edad.set_text(color=(255, 255, 255, 255)) self.label_edad.set_font_from_file(fuente, tamanio=30) self.add(self.label_edad) self.entry_edad = JAMButton("", None) self.entrys.append(self.entry_edad) self.add(self.entry_edad) # Ingresar escuela self.label_escuela = JAMLabel("Escuela:") self.label_escuela.set_text(color=(255, 255, 255, 255)) self.label_escuela.set_font_from_file(fuente, tamanio=30) self.add(self.label_escuela) self.entry_escuela = JAMButton("", None) self.entrys.append(self.entry_escuela) self.add(self.entry_escuela) # Ingresar Clase self.label_clase = JAMLabel("Clase:") self.label_clase.set_text(color=(255, 255, 255, 255)) self.label_clase.set_font_from_file(fuente, tamanio=30) self.add(self.label_clase) self.entry_clase = JAMButton("", None) self.entrys.append(self.entry_clase) self.add(self.entry_clase) # Ingresar departamento self.label_departamento = JAMLabel("Departamento:") self.label_departamento.set_text(color=(255, 255, 255, 255)) self.label_departamento.set_font_from_file(fuente, tamanio=30) self.add(self.label_departamento) self.entry_departamento = JAMButton("", None) self.entrys.append(self.entry_departamento) self.add(self.entry_departamento) for boton in self.entrys: boton.set_alineacion_label("izquierda") boton.set_imagen(origen=imagen_teclado) boton.set_font_from_file(fuente, tamanio=25) boton.set_tamanios(tamanio=(300, 35), grosorbor=1, detalle=1, espesor=1) boton.connect(callback=None, sonido_select=None) self.label_derecho = JAMLabel("Selecciona un Personaje:") self.label_derecho.set_text(color=(255, 255, 255, 255)) self.label_derecho.set_font_from_file(fuente, tamanio=30) self.add(self.label_derecho) self.boton_crear = JAMButton("Crear", None) self.boton_crear.set_font_from_file(fuente, tamanio=30) self.boton_crear.set_tamanios(tamanio=(200, 40), grosorbor=1, detalle=1, espesor=1) self.boton_crear.set_colores(colorbas=(0, 157, 224, 255), colorbor=(0, 157, 224, 255), colorcara=(92, 193, 235, 255)) #self.boton_crear.set_colores(colorbas = (92,193,235,255), # colorbor = (255,255,255,255), colorcara = (92,193,235,255)) self.boton_crear.set_text(color=(255, 255, 255, 255)) self.boton_crear.connect(callback=self.crear_usuario, sonido_select=None) self.add(self.boton_crear) self.add(self.jacinto) self.add(self.jose) self.add(self.natalia) self.entry_nombre.connect(callback=self.enter_nombre) self.entry_edad.connect(callback=self.enter_edad) self.entry_escuela.connect(callback=self.enter_escuela) self.entry_clase.connect(callback=self.enter_clase) self.entry_departamento.connect(callback=self.enter_departamento)
def __init__(self, texto): JAMLabel.__init__(self, texto) self.set_text(color=JAMG.get_blanco()) self.set_font_from_file(JAMG.get_Font_fawn()[0], tamanio=35)
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=(2, 30), duracion=3) self.add(self.cronometro) self.progress_reloj = ProgressBar(self.main) self.add(self.progress_reloj) self.decorativas = ImagenesDecorativas(self) self.add(self.decorativas)
def get_labels_carteles(self, texto, centro): ''' Etiquetas sobre los carteles.''' palabras = texto.split(" ") renglon1 = "%s %s" % (palabras[0], palabras[1]) label = JAMLabel(renglon1) label.set_text(color=JAMG.get_blanco()) fuente, tamanio = JAMG.get_Font_fawn() label.set_font_from_file(fuente, tamanio=30) x, y = centro w, h = label.get_tamanio() label.set_posicion(punto=(x - w / 2, y - h)) self.add(label) if len(palabras) > 2: renglon2 = "" ww, hh = label.get_tamanio() for palabra in palabras[2:]: renglon2 += palabra + " " label = JAMLabel(renglon2) label.set_text(color=JAMG.get_blanco()) fuente, tamanio = JAMG.get_Font_fawn() label.set_font_from_file(fuente, tamanio=30) w, h = label.get_tamanio() label.set_posicion(punto=(x - w / 2, y + hh - h)) self.add(label) else: label.set_posicion(punto=(x - w / 2, y))