Exemplo n.º 1
0
    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
Exemplo n.º 4
0
 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)
Exemplo n.º 8
0
 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
Exemplo n.º 9
0
    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)
Exemplo n.º 10
0
    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)
Exemplo n.º 11
0
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)
Exemplo n.º 13
0
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)
Exemplo n.º 15
0
 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)
Exemplo n.º 16
0
    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)
Exemplo n.º 17
0
 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))