class Item_Juego(): def __init__(self, archivosydirectorios, juego, grupo): self.grupo = grupo self.Archivos_y_Directorios = archivosydirectorios self.juego = juego self.texto = self.juego #juego.split(".")[0] self.separador = 10 self.etiqueta_juego = JAMLabel(imagen=None, texto=self.texto, tamanio_de_letra=40) self.boton_borrar = JAMButton(texto="Borrar", tamanio_de_letra=30, tamanio_panel=(50,self.etiqueta_juego.rect.h), color_relleno=(255,255,255,1), grosor_borde=0, color_panel=None) self.boton_load = JAMButton(texto="Cargar", tamanio_de_letra=30, tamanio_panel=(50,self.etiqueta_juego.rect.h), color_relleno=(255,255,255,1), grosor_borde=0, color_panel=None) ancho = self.boton_borrar.rect.w + self.separador + self.etiqueta_juego.rect.w + self.separador + self.boton_load.rect.w self.frame = self.get_frame(color=(255,200,0,1), tamanio=(ancho+self.separador*2,self.etiqueta_juego.rect.h+self.separador*2)) self.boton_borrar.connect(callback=self.delete_game, sonido_select=None) self.boton_load.connect(callback=self.carga_game, sonido_select=None) def agregate(self, grupo): grupo.add(self.frame) grupo.add(self.etiqueta_juego) grupo.add(self.boton_borrar) grupo.add(self.boton_load) def get_frame(self, color=(0,0,0,1), tamanio=VG.RESOLUCION_MONITOR): # devuelve una superficie de color para el fondo de la ventana frame = pygame.sprite.Sprite() superficie = pygame.Surface( tamanio, flags=HWSURFACE ) superficie.fill(color) frame.image = superficie frame.rect = frame.image.get_rect() return frame def set_posicion(self, punto=(0,0)): (x,y) = punto self.etiqueta_juego.set_posicion((x,y)) a = x - self.separador - self.boton_borrar.rect.w self.boton_borrar.set_posicion((a,y)) b = x + self.separador + self.etiqueta_juego.rect.w self.boton_load.set_posicion((b,y)) self.frame.rect.x = self.boton_borrar.rect.x-self.separador self.frame.rect.y = self.boton_borrar.rect.y-self.separador def delete_game(self): self.Archivos_y_Directorios.borrar_tabla(self.juego) self.frame.kill() self.etiqueta_juego.kill() self.boton_borrar.kill() self.boton_load.kill() self.grupo.reordenar_juegos(self) return def carga_game(self): self.grupo.juego_base.cargar_juego(self.Archivos_y_Directorios.Leer_Base_de_Datos(self.juego))
def setup(self): pygame.display.set_mode(RESOLUCION_MONITOR , 0, 0) # para que quede negra la pantalla if not self.widgets: self.widgets = pygame.sprite.OrderedUpdates() if not self.reloj: self.reloj = pygame.time.Clock() if not self.imagen: self.imagen = self.get_imagen(color=(0,0,0,1), tamanio=RESOLUCION_MONITOR) # superficie if not self.etiqueta: self.etiqueta = JAMLabel ( imagen=None , texto="Cargando . . .", tamanio_de_letra=50, color=(255,255,255,1)) if not self.posicion_label: self.posicion_label = RESOLUCION_MONITOR[0]/2 - self.etiqueta.rect.w/2, RESOLUCION_MONITOR[1]/2 - self.etiqueta.rect.h/2 self.etiqueta.set_posicion(self.posicion_label) if not self.etiqueta in self.widgets.sprites(): self.widgets.add(self.etiqueta)
class JAMatrix(): def __init__(self, ventana): self.ventana = ventana # la ventana self.widgets = None # grupo de terrones self.interval = 0 # intervalo para agregar terrones self.reloj = None # pygame.time self.imagen = None # el fondo self.etiqueta = None # el mensaje sobre lo que se está cargando self.posicion_label = None # la posicion de la etiqueta para cambiar el mensaje def Run(self): pygame.display.set_caption("JAMatrix (Versión 1) - CeibalJAM! - Uruguay - 2010") pygame.mouse.set_visible(False) self.reloj.tick(35) if self.interval == 10: self.genera_terrones() self.interval = 0 cambios=[] self.widgets.clear(self.ventana, self.imagen) self.widgets.update() cambios.extend ( self.widgets.draw(self.ventana) ) pygame.display.update(cambios) pygame.time.wait(1) self.interval += 1 def descarga_todo(self): self.widgets = None self.interval = 0 self.reloj = None self.imagen = None self.etiqueta = None self.posicion_label = None def setup(self): pygame.display.set_mode(RESOLUCION_MONITOR , 0, 0) # para que quede negra la pantalla if not self.widgets: self.widgets = pygame.sprite.OrderedUpdates() if not self.reloj: self.reloj = pygame.time.Clock() if not self.imagen: self.imagen = self.get_imagen(color=(0,0,0,1), tamanio=RESOLUCION_MONITOR) # superficie if not self.etiqueta: self.etiqueta = JAMLabel ( imagen=None , texto="Cargando . . .", tamanio_de_letra=50, color=(255,255,255,1)) if not self.posicion_label: self.posicion_label = RESOLUCION_MONITOR[0]/2 - self.etiqueta.rect.w/2, RESOLUCION_MONITOR[1]/2 - self.etiqueta.rect.h/2 self.etiqueta.set_posicion(self.posicion_label) if not self.etiqueta in self.widgets.sprites(): self.widgets.add(self.etiqueta) def get_imagen(self, color=(100,100,100,1), tamanio=(800,600)): superficie = pygame.Surface( tamanio, flags=HWSURFACE ) superficie.fill(color) return superficie def genera_terrones(self): x = random.randrange(0, 1190, 10) terron = Terron() terron.rect.x, terron.rect.y = (x,-50) self.widgets.add(terron)
def get_bichos_cantores(self): # carga las imágenes for imagen in os.listdir(IMAGENES): boton = JAMButton(imagen=IMAGENES + imagen, texto=None, tamanio_panel=(190, 180), grosor_borde=0) self.add(boton) jam_label = JAMLabel(imagen=None, texto="Cantando . . .", tamanio_de_letra=25, color=(255, 0, 0, 1)) direccion = str(imagen.split(".")[0]) + ".ogg" self.botones[boton] = [direccion, jam_label, False, direccion] boton.connect(callback=self.play_canto, sonido_select=None) x = 0 y = 0 contador = 0 for boton in self: boton.set_posicion(punto=(x, y)) x += 200 contador += 1 if contador == 6: x = 0 y += boton.rect.h contador = 0
def __init__(self, archivosydirectorios, juego, grupo): self.grupo = grupo self.Archivos_y_Directorios = archivosydirectorios self.juego = juego self.texto = self.juego #juego.split(".")[0] self.separador = 10 self.etiqueta_juego = JAMLabel(imagen=None, texto=self.texto, tamanio_de_letra=40) self.boton_borrar = JAMButton(texto="Borrar", tamanio_de_letra=30, tamanio_panel=(50,self.etiqueta_juego.rect.h), color_relleno=(255,255,255,1), grosor_borde=0, color_panel=None) self.boton_load = JAMButton(texto="Cargar", tamanio_de_letra=30, tamanio_panel=(50,self.etiqueta_juego.rect.h), color_relleno=(255,255,255,1), grosor_borde=0, color_panel=None) ancho = self.boton_borrar.rect.w + self.separador + self.etiqueta_juego.rect.w + self.separador + self.boton_load.rect.w self.frame = self.get_frame(color=(255,200,0,1), tamanio=(ancho+self.separador*2,self.etiqueta_juego.rect.h+self.separador*2)) self.boton_borrar.connect(callback=self.delete_game, sonido_select=None) self.boton_load.connect(callback=self.carga_game, sonido_select=None)
def __init__(self): pygame.sprite.OrderedUpdates.__init__(self) self.bicho = None x = 10 y = 50 self.separador = 5 self.label_tiempo = JAMLabel(imagen=None, texto="Años: 0 Dias: 0 Horas: 0", tamanio_de_letra=30) posicion = (x, y) self.label_tiempo.set_posicion((posicion)) self.add(self.label_tiempo) y += self.label_tiempo.rect.h + self.separador self.label_hambre = JAMLabel(imagen=None, texto="Nivel de Apetito: ", tamanio_de_letra=25) posicion = (x, y) self.label_hambre.set_posicion((posicion)) self.add(self.label_hambre) y += self.label_hambre.rect.h + self.separador self.label_sed = JAMLabel(imagen=None, texto="Nivel de Sed: ", tamanio_de_letra=25) posicion = (x, y) self.label_sed.set_posicion((posicion)) self.add(self.label_sed) self.barra_nutricion = Barra() self.barra_nutricion.rect.x = self.label_tiempo.rect.x + 170 self.barra_nutricion.rect.centery = self.label_hambre.rect.centery self.add(self.barra_nutricion) self.barra_hidratacion = Barra() self.barra_hidratacion.rect.x = self.label_tiempo.rect.x + 170 self.barra_hidratacion.rect.centery = self.label_sed.rect.centery self.add(self.barra_hidratacion) self.circulo = Circulo((60, 60)) self.add(self.circulo)
class Ficha_Bicho(pygame.sprite.OrderedUpdates): def __init__(self): pygame.sprite.OrderedUpdates.__init__(self) self.bicho = None x = 10 y = 50 self.separador = 5 self.label_tiempo = JAMLabel(imagen=None, texto="Años: 0 Dias: 0 Horas: 0", tamanio_de_letra=30) posicion = (x, y) self.label_tiempo.set_posicion((posicion)) self.add(self.label_tiempo) y += self.label_tiempo.rect.h + self.separador self.label_hambre = JAMLabel(imagen=None, texto="Nivel de Apetito: ", tamanio_de_letra=25) posicion = (x, y) self.label_hambre.set_posicion((posicion)) self.add(self.label_hambre) y += self.label_hambre.rect.h + self.separador self.label_sed = JAMLabel(imagen=None, texto="Nivel de Sed: ", tamanio_de_letra=25) posicion = (x, y) self.label_sed.set_posicion((posicion)) self.add(self.label_sed) self.barra_nutricion = Barra() self.barra_nutricion.rect.x = self.label_tiempo.rect.x + 170 self.barra_nutricion.rect.centery = self.label_hambre.rect.centery self.add(self.barra_nutricion) self.barra_hidratacion = Barra() self.barra_hidratacion.rect.x = self.label_tiempo.rect.x + 170 self.barra_hidratacion.rect.centery = self.label_sed.rect.centery self.add(self.barra_hidratacion) self.circulo = Circulo((60, 60)) self.add(self.circulo) def set_bicho(self, bicho): tamanio = (bicho.rect.w, bicho.rect.h) self.circulo.image = pygame.transform.scale( self.circulo.imagen_original, (tamanio)) self.bicho = bicho def update(self): if self.bicho: self.actualizar_datos() def actualizar_datos(self): x = 10 y = 50 edad = "Dias: %s Horas: %s" % (self.bicho.dias, self.bicho.horas) if edad != self.label_tiempo.valor_texto: self.label_tiempo.set_text(texto=edad) posicion = (x, y) self.label_tiempo.set_posicion((posicion)) y += self.label_tiempo.rect.h + self.separador nutricion = "Nutrición: %s" % (self.bicho.hambre) if nutricion != self.label_hambre.valor_texto: self.label_hambre.set_text(texto=nutricion) posicion = (x, y) self.label_hambre.set_posicion((posicion)) self.barra_nutricion.set_valor(self.bicho.hambre) y += self.label_hambre.rect.h + self.separador hidratacion = "Hidratación: %s" % (self.bicho.sed) if hidratacion != self.label_sed.valor_texto: self.label_sed.set_text(texto=hidratacion) posicion = (x, y) self.label_sed.set_posicion((posicion)) self.barra_hidratacion.set_valor(self.bicho.sed) self.circulo.rect.center = self.bicho.rect.center
def __init__(self): pygame.sprite.OrderedUpdates.__init__(self) separador = 10 # para dar de comer self.boton_pan = JAMButton(imagen=VG.PAN, texto=None) ancho_botones = self.boton_pan.rect.w self.boton_jarra = JAMButton(imagen=VG.JARRA, texto=None) x = VG.RESOLUCION_MONITOR[0] - separador - ancho_botones y = separador self.boton_pan.set_posicion(punto=(x,y)) y += self.boton_pan.rect.h + separador self.boton_jarra.set_posicion(punto=(x,y)) y += self.boton_jarra.rect.h + separador*2 self.boton_ciclo = JAMButton(texto="Ciclo Vital", tamanio_de_letra=20, tamanio_panel=(ancho_botones,50)) self.boton_ciclo.set_posicion(punto=(x,y)) y += self.boton_ciclo.rect.h + separador self.boton_muda = JAMButton(texto="Muda", tamanio_de_letra=20, tamanio_panel=(ancho_botones,50)) self.boton_muda.set_posicion(punto=(x,y)) y += self.boton_muda.rect.h + separador self.boton_reproduccion = JAMButton(texto="Reproducción", tamanio_de_letra=20, tamanio_panel=(ancho_botones,50)) self.boton_reproduccion.set_posicion(punto=(x,y)) y += self.boton_reproduccion.rect.h + separador self.boton_muerte = JAMButton(texto="Muerte", tamanio_de_letra=20, tamanio_panel=(ancho_botones,50)) self.boton_muerte.set_posicion(punto=(x,y)) y += self.boton_reproduccion.rect.h + separador self.boton_plaga = JAMButton(texto="Plaga", tamanio_de_letra=20, tamanio_panel=(ancho_botones,50)) self.boton_plaga.set_posicion(punto=(x,y)) self.boton_salir = JAMButton(texto="Salir", tamanio_de_letra=20, tamanio_panel=(ancho_botones,50)) y = VG.RESOLUCION_MONITOR[1] - separador - self.boton_salir.rect.h self.boton_salir.set_posicion(punto=(x,y)) self.imagenes_audio = VG.ICONOSAUDIO self.boton_musica = JAMButton(texto=None, imagen=self.imagenes_audio[0], tamanio_panel=(ancho_botones,70)) y = self.boton_salir.rect.y - separador - self.boton_musica.rect.h self.boton_musica.set_posicion(punto=(x,y)) self.posicion_boton_audio = (x,y) self.boton_extras = JAMButton(texto="Lectura", tamanio_de_letra=20, tamanio_panel=(ancho_botones,50)) y = self.boton_musica.rect.y - separador - self.boton_extras.rect.h self.boton_extras.set_posicion(punto=(x,y)) self.add(self.boton_pan) self.add(self.boton_jarra) self.add(self.boton_extras) self.add(self.boton_musica) self.add(self.boton_salir) # Etiquetas self.label_pan = JAMLabel(imagen=VG.PAN, tamanio_imagen=(40,30), texto="000", tamanio_de_letra=25) posicion = (0,0) self.label_pan.set_posicion((posicion)) self.add(self.label_pan) self.label_agua = JAMLabel(imagen=VG.AGUA, tamanio_imagen=(40,30), texto="000", tamanio_de_letra=25) posicion = (100,0) self.label_agua.set_posicion((posicion)) self.add(self.label_agua) self.label_tiempo = JAMLabel(imagen=None, texto="Tiempo de Juego = Años: 0 Dias: 0 Horas: 0", tamanio_de_letra=25) posicion = (200,0) self.label_tiempo.set_posicion((posicion)) self.add(self.label_tiempo) self.informacion_cucas = "Cucarachas: 0, Machos: 0, Hembras: 0, Ootecas: 0, Migración: 0" self.label_cucas_info = JAMLabel(imagen=None, texto=self.informacion_cucas, tamanio_de_letra=25) x = 10 y = VG.RESOLUCION_MONITOR[1] - 10 - self.label_cucas_info.rect.h posicion = (x, y) self.label_cucas_info.set_posicion(posicion) self.add(self.label_cucas_info)
def get_sprites(self): Textos1 = ["CucaraSims.", "El Sims de las Cucarachas.", "Para Aprender Jugando y Jugar Aprendiendo.", "Dedicado con Cariño a mis Compañeros Voluntarios de", "CeibalJAM!, RAP Ceibal y a Todos los Niños y Jóvenes", "del Uruguay y demás comunidades Sugar."] Textos2 = ["CucaraSims forma parte de un paquete de actividades", "sobre inséctos, para aprender jugando y jugar aprendiendo.", "Dicho paquete a su vez, forma parte de Artrópodos.activity.", "Todo se encuentra en desarrollo y apenas iniciado.", "Si deseas participar en el proyecto contáctate conmigo", "a [email protected], serás bienvenido."] Textos3 = ["También se encuentra en desarrollo la librería", "de widgets utilizada: CeibalJAM_Lib.", "Si eres programador python y deseas colaborar,", "puedes descargar la librería desde:", "https://sites.google.com/site/sugaractivities/ceibaljam_lib"] Textos4 = ["Idea Original, Edición de Audio y Video,", "Diseño Gráfico, Desarrollo y Contenidos:", "Flavio Danesse - [email protected]", "Imágenes e Información: Wikipedia - Wikiespecies", "Música: MATI - ARUAL - http://www.jamendo.com"] Textos5 = ["Si eres un jóven que desea aprender a programar", "en python y necesitas ayuda, realiza la solicitud", "para unirte a python jóven en:", "https://sites.google.com/site/flaviodanesse/python-joven"] # logo color = (255,255,255,1) contador = 1 logo = JAMLabel (imagen=VG.LOGO, texto=None, tamanio_imagen=(255,117)) y = VG.RESOLUCION_MONITOR[1] x = VG.RESOLUCION_MONITOR[0]/2 - logo.rect.w/2 logo.set_posicion((x,y)) self.add(logo) self.grupo1[contador] = logo, (x,y) y += 95 contador += 1 # textos1 for texto in Textos1: etiqueta = JAMLabel (imagen=None, texto=texto, tamanio_de_letra=40, color=color) x = VG.RESOLUCION_MONITOR[0]/2 - etiqueta.rect.w/2 # centrado en la pantalla etiqueta.set_posicion((x,y)) self.add(etiqueta) self.grupo1[contador] = etiqueta, (x,y) y += 100 contador += 1 contador = 1 y = VG.RESOLUCION_MONITOR[1] for texto in Textos2: etiqueta = JAMLabel (imagen=None, texto=texto, tamanio_de_letra=40, color=color) x = VG.RESOLUCION_MONITOR[0]/2 - etiqueta.rect.w/2 # centrado en la pantalla etiqueta.set_posicion((x,y)) self.add(etiqueta) self.grupo2[contador] = etiqueta, (x,y) y += 100 contador += 1 contador = 1 y = VG.RESOLUCION_MONITOR[1] for texto in Textos3: etiqueta = JAMLabel (imagen=None, texto=texto, tamanio_de_letra=40, color=color) x = VG.RESOLUCION_MONITOR[0]/2 - etiqueta.rect.w/2 # centrado en la pantalla etiqueta.set_posicion((x,y)) self.add(etiqueta) self.grupo3[contador] = etiqueta, (x,y) y += 100 contador += 1 contador = 1 y = VG.RESOLUCION_MONITOR[1] for texto in Textos4: etiqueta = JAMLabel (imagen=None, texto=texto, tamanio_de_letra=40, color=color) x = VG.RESOLUCION_MONITOR[0]/2 - etiqueta.rect.w/2 # centrado en la pantalla etiqueta.set_posicion((x,y)) self.add(etiqueta) self.grupo4[contador] = etiqueta, (x,y) y += 100 contador += 1 contador = 1 y = VG.RESOLUCION_MONITOR[1] for texto in Textos5: etiqueta = JAMLabel (imagen=None, texto=texto, tamanio_de_letra=40, color=color) x = VG.RESOLUCION_MONITOR[0]/2 - etiqueta.rect.w/2 # centrado en la pantalla etiqueta.set_posicion((x,y)) self.add(etiqueta) self.grupo5[contador] = etiqueta, (x,y) y += 100 contador += 1
def get_sprites(self): Textos1 = [ "Insectos.activity", "Para Aprender Jugando y Jugar Aprendiendo.", "Insectos.activity forma parte de Artrópodos.activity.", "Todo se encuentra en desarrollo y apenas iniciado.", "Si deseas participar en el proyecto contáctate conmigo", "a [email protected], serás bienvenido." ] Textos2 = [ "También se encuentra en desarrollo la librería", "de widgets utilizada: CeibalJAM_Lib.", "Si eres programador python y deseas colaborar,", "puedes descargar la librería desde:", "https://sites.google.com/site/sugaractivities/ceibaljam_lib" ] Textos3 = [ "Idea Original, Edición de Audio y Video,", "Diseño Gráfico, Desarrollo y Contenidos:", "Flavio Danesse - [email protected]", "Imágenes e Información: Wikipedia - Wikiespecies", "Música: MATI - ARUAL - http://www.jamendo.com" ] Textos4 = [ "Si eres un jóven que desea aprender a programar", "en python y necesitas ayuda, realiza la solicitud", "para unirte a python jóven en:", "https://sites.google.com/site/flaviodanesse/python-joven" ] color = (255, 255, 255, 1) y = RESOLUCION_MONITOR[1] contador = 1 for texto in Textos1: etiqueta = JAMLabel(imagen=None, texto=texto, tamanio_de_letra=40, color=color) x = RESOLUCION_MONITOR[ 0] / 2 - etiqueta.rect.w / 2 # centrado en la pantalla etiqueta.set_posicion((x, y)) self.add(etiqueta) self.grupo1[contador] = etiqueta, (x, y) y += 100 contador += 1 contador = 1 y = RESOLUCION_MONITOR[1] for texto in Textos2: etiqueta = JAMLabel(imagen=None, texto=texto, tamanio_de_letra=40, color=color) x = RESOLUCION_MONITOR[ 0] / 2 - etiqueta.rect.w / 2 # centrado en la pantalla etiqueta.set_posicion((x, y)) self.add(etiqueta) self.grupo2[contador] = etiqueta, (x, y) y += 100 contador += 1 contador = 1 y = RESOLUCION_MONITOR[1] for texto in Textos3: etiqueta = JAMLabel(imagen=None, texto=texto, tamanio_de_letra=40, color=color) x = RESOLUCION_MONITOR[ 0] / 2 - etiqueta.rect.w / 2 # centrado en la pantalla etiqueta.set_posicion((x, y)) self.add(etiqueta) self.grupo3[contador] = etiqueta, (x, y) y += 100 contador += 1 contador = 1 y = RESOLUCION_MONITOR[1] for texto in Textos4: etiqueta = JAMLabel(imagen=None, texto=texto, tamanio_de_letra=40, color=color) x = RESOLUCION_MONITOR[ 0] / 2 - etiqueta.rect.w / 2 # centrado en la pantalla etiqueta.set_posicion((x, y)) self.add(etiqueta) self.grupo4[contador] = etiqueta, (x, y) y += 100 contador += 1