From dbd89c7514edc93915cc12b535d875f94e4f3109 Mon Sep 17 00:00:00 2001 From: flavio Date: Sun, 12 Aug 2012 20:26:04 +0000 Subject: Correcciones y actualizacion a sugar 0.94 --- (limited to 'Main.py') diff --git a/Main.py b/Main.py index 53835f5..042d318 100644 --- a/Main.py +++ b/Main.py @@ -19,7 +19,13 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -import pygame, sys, threading, random, gc, gtk, pygtk +import pygame +import sys +import threading +import random +import gc +import gtk + from pygame.locals import * gc.enable() @@ -36,559 +42,560 @@ from Archivos_y_Directorios import Archivos_y_Directorios from Bicho import Bicho def Traduce_posiciones(VA, VH): - eventos= pygame.event.get(pygame.MOUSEBUTTONDOWN) - for event in eventos: - x, y = event.pos - xx= x/VA - yy= y/VH - event_pos= (xx, yy) - for event in eventos: - evt = pygame.event.Event(pygame.MOUSEBUTTONDOWN, pos= event_pos, button=event.button) - pygame.event.post(evt) - - eventos= pygame.event.get(pygame.MOUSEMOTION) - for event in eventos: - x, y = event.pos - xx= x/VA - yy= y/VH - event_pos= (xx, yy) - for event in eventos: - evt = pygame.event.Event(pygame.MOUSEMOTION, pos= event_pos, rel=event.rel, buttons=event.buttons) - pygame.event.post(evt) - + eventos= pygame.event.get(pygame.MOUSEBUTTONDOWN) + for event in eventos: + x, y = event.pos + xx= x/VA + yy= y/VH + event_pos= (xx, yy) + for event in eventos: + evt = pygame.event.Event(pygame.MOUSEBUTTONDOWN, pos= event_pos, button=event.button) + pygame.event.post(evt) + + eventos= pygame.event.get(pygame.MOUSEMOTION) + for event in eventos: + x, y = event.pos + xx= x/VA + yy= y/VH + event_pos= (xx, yy) + for event in eventos: + evt = pygame.event.Event(pygame.MOUSEMOTION, pos= event_pos, rel=event.rel, buttons=event.buttons) + pygame.event.post(evt) + class Main(): - def __init__(self, res= None): - self.resolucionreal= res - # Variables para JAMatrix - self.ventana= None - self.name= "CucaraSims" - - # Variables del Juego - self.fondo= None - self.reloj= None - - # Escalado - self.ventana_real= None - self.VA= None - self.VH= None - - self.sonido_select = None - self.sprites = pygame.sprite.OrderedUpdates() - self.Archivos_y_Directorios = None - self.base_de_datos = None - self.creditos = None - self.dialog_cerrar = None - self.menu = None - self.mensaje = None - self.Cria_Bichos= None - - self.interval = 0 - self.nivel = None - - self.Juegos_guardados = None - - self.preset() - self.load() - self.run() - - def run(self): - self.nivel = "Menu" - self.sprites= self.menu - self.RunMenu() - - def RunMenu(self): - pygame.mouse.set_visible(True) - self.Cria_Bichos.set_musica() - self.fondo= self.get_fondo2() - self.ventana.blit(self.fondo, (0,0)) - self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) - pygame.display.update() - - while self.nivel == "Menu": - self.reloj.tick(35) - while gtk.events_pending(): - gtk.main_iteration(False) - Traduce_posiciones(self.VA, self.VH) - if self.mensaje: self.pause_menu() - self.sprites.clear(self.ventana, self.fondo) - self.sprites.update() - self.handle_event() - pygame.event.clear() - self.sprites.draw(self.ventana) - self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) - pygame.display.update() - - if self.nivel == "CucaraSims": - self.Cria_Bichos.Run() - if self.nivel == "Creditos": - self.RunCreditos() - - def handle_event(self): - if pygame.event.get(pygame.VIDEORESIZE): print "OK" - for event in pygame.event.get(pygame.KEYDOWN): - tecla= event.key - if tecla== pygame.K_ESCAPE: - if self.nivel == "Menu" and not self.mensaje: - self.selecciona_mensaje_cerrar(None) - elif self.nivel == "Creditos": - self.nivel = "Menu" - elif self.mensaje: - self.deselecciona_mensaje(None) - - def pause_menu(self): - self.ventana.blit(self.fondo, (0,0)) - while self.mensaje.sprites(): - self.reloj.tick(35) - while gtk.events_pending(): - gtk.main_iteration(False) - Traduce_posiciones(self.VA, self.VH) - self.mensaje.clear(self.ventana, self.fondo) - self.mensaje.update() - self.handle_event() - pygame.event.clear() - self.mensaje.draw(self.ventana) - self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) - pygame.display.update() - - def deselecciona_mensaje(self, button= None): - self.mensaje= pygame.sprite.OrderedUpdates() - - def selecciona_mensaje_cerrar(self, button= None): - self.mensaje= self.dialog_cerrar - - def selecciona_menu_cargar(self, button= None): - self.deselecciona_mensaje(None) - self.Juegos_guardados= Juegos_Guardados(self.Archivos_y_Directorios, self) - self.mensaje= self.Juegos_guardados - - def cargar_juego(self, datos): - # Carga el juegon Juego guardado seleccionado - # poner todo a cero - self.Cria_Bichos.Bichos.empty() - self.Cria_Bichos.cadaveres.empty() - self.Cria_Bichos.alimento.empty() - self.Cria_Bichos.ootecas.empty() - self.Cria_Bichos.agua.empty() - self.Cria_Bichos.ficha = pygame.sprite.OrderedUpdates() - self.Cria_Bichos.puntos = 0 - self.Cria_Bichos.tiempo_de_juego = 0 - self.Cria_Bichos.horas = 0 - self.Cria_Bichos.dias = 0 - self.Cria_Bichos.anios = 0 - self.Cria_Bichos.machos, self.Cria_Bichos.hembras = 0,0 - - self.Cria_Bichos.secuencia_muda = 0 - self.Cria_Bichos.reproduccion = 0 - self.Cria_Bichos.nacimientos = 0 - self.Cria_Bichos.muertes = 0 - self.Cria_Bichos.plaga = 0 - - # recuperar datos - (base, datos_juego, cucas, ootecas) = datos # return (base, datos_juego, cucas, Ootecas) - - self.base_de_datos = base - - # datos generales del juego - # datos 0 Tabla Juego [anios, dias, horas, puntos] - self.Cria_Bichos.anios = int(datos_juego[1]) - self.Cria_Bichos.dias = int(datos_juego[2]) - self.Cria_Bichos.horas = int(datos_juego[3]) - self.Cria_Bichos.puntos = int(datos_juego[4]) - - for cuca in cucas: - # datos de cucarachas - # datos 1 Tabla Cucas [sexo, anios, dias, horas, hambre, sed] - contador, sexo, anios, dias, horas, hambre, sed = cuca - tipo = None - while tipo != sexo: - bicho = Bicho(self.Cria_Bichos) - tipo = bicho.sexo - self.Cria_Bichos.Bichos.add(bicho) - - if bicho.sexo == "M": - self.Cria_Bichos.machos += 1 - elif bicho.sexo == "F": - self.Cria_Bichos.hembras += 1 - - bicho.anios = int(anios) - bicho.dias = int(dias) - bicho.horas = int(horas) - bicho.hambre = int(hambre) - bicho.sed = int(sed) - - # escalar - for dia in range (0, bicho.dias): - # desde dia cero hasta los dias que tiene el bicho - if dia == bicho.control_mudas: # bicho.control_mudas es una lista de dias de mudas - - indice = bicho.dias_mudas.index(dia) - bicho.set_muda(escala=bicho.escalas_mudas[indice]) # se obtiene el tamaño - bicho.velocidad += int(bicho.velocidad/3) - - if indice+1 < len(bicho.dias_mudas): - bicho.control_mudas = bicho.dias_mudas[indice+1] - else: - bicho.control_mudas = bicho.dias_mudas[0] - - print "CUCA: ", bicho.anios, bicho.dias, bicho.horas, bicho.hambre, bicho.sed - - if self.Cria_Bichos.hembras + self.Cria_Bichos.machos != len(cucas): - print "HAY INCOHERENCIAS DE CANTIDAD DE BICHOS ALMACENADOS/CARGADOS" - - for ooteca in ootecas: - # datos de cucarachas - # datos 2 Tabla ootecas [dias, horas, huevos] - contador, dias, horas, huevos = ooteca - ooteca = Ooteca(self.Cria_Bichos, posicion=(0,0)) - self.Cria_Bichos.ootecas.add(ooteca) - ooteca.dias = int(dias) - ooteca.horas = int(horas) - ooteca.huevos = int(huevos) - print "ooteca: ", ooteca.dias, ooteca.horas, ooteca.huevos - - self.deselecciona_mensaje(None) - self.nivel = "CucaraSims" - - def get_new_game(self, button): - self.base_de_datos= self.Archivos_y_Directorios.CrearBasededatos() - self.Cria_Bichos.get_nuevo_Juego() - if self.base_de_datos: - self.nivel = "CucaraSims" - else: - print "Error al crear la base de datos" - #self.nivel = "CucaraSims" - - def RunCreditos(self): - pygame.mixer.music.load(VG.MUSICA2) - pygame.mixer.music.play(-1, 0.0) - self.ventana.blit(self.fondo, (0,0)) - pygame.display.update() - while self.nivel == "Creditos": - self.reloj.tick(35) - while gtk.events_pending(): - gtk.main_iteration(False) - Traduce_posiciones(self.VA, self.VH) - self.creditos.clear(self.ventana, self.fondo) - self.creditos.update() - self.handle_event() - pygame.event.clear() - self.creditos.draw(self.ventana) - self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) - pygame.display.update() - if self.nivel == "Menu": - self.RunMenu() - - def get_fondo2(self, tamanio=VG.RESOLUCION): - superficie = pygame.transform.scale(pygame.image.load(VG.FONDO4), (VG.RESOLUCION)) - return superficie - - def get_creditos(self, button): - self.nivel= "Creditos" - - def preset(self): - pygame.mouse.set_visible(False) - pygame.display.set_mode( (0,0), pygame.DOUBLEBUF | pygame.FULLSCREEN, 0) - A, B= VG.RESOLUCION - self.ventana= pygame.Surface( (A, B), flags=HWSURFACE ) - self.ventana_real= pygame.display.get_surface() - C, D= (0, 0) - if not self.resolucionreal: - C= pygame.display.Info().current_w - D= pygame.display.Info().current_h - self.resolucionreal= (C,D) - else: - C, D= self.resolucionreal - self.VA= float(C)/float(A) - self.VH= float(D)/float(B) - pygame.display.set_caption("CucaraSims") - pygame.event.set_blocked([JOYAXISMOTION, JOYBALLMOTION, JOYHATMOTION, JOYBUTTONUP, JOYBUTTONDOWN, - KEYUP, VIDEORESIZE, VIDEOEXPOSE, USEREVENT, QUIT, ACTIVEEVENT]) - pygame.event.set_allowed([MOUSEMOTION, MOUSEBUTTONUP, MOUSEBUTTONDOWN, KEYDOWN]) - - def load(self): - pygame.mixer.init() - if not self.Archivos_y_Directorios: self.Archivos_y_Directorios= Archivos_y_Directorios(VG.DIRECTORIO_DATOS) - if not self.sonido_select: self.sonido_select= JAMG.get_sound_select() - if not self.reloj: self.reloj= pygame.time.Clock() - if not self.fondo: self.fondo= self.get_fondo() - if not self.menu: - self.menu= Menu() - self.menu.boton_nuevo.connect(callback= self.get_new_game, sonido_select= self.sonido_select) - self.menu.boton_cargar.connect(callback= self.selecciona_menu_cargar, sonido_select= self.sonido_select) - self.menu.boton_creditos.connect(callback= self.get_creditos, sonido_select= self.sonido_select) - self.menu.boton_salir.connect(callback= self.selecciona_mensaje_cerrar, sonido_select= self.sonido_select) - - if not self.creditos: self.creditos= Creditos(self) - - if not self.dialog_cerrar: - a,b,c= JAMG.get_estilo_naranja() - self.dialog_cerrar= JAMDialog(mensaje= "¿Deseas Salir del Juego?", - funcion_ok= self.salir, funcion_cancel= self.deselecciona_mensaje) - self.dialog_cerrar.set_colors_dialog(base= c, bordes= b) - self.dialog_cerrar.set_colors_buttons(colorbas= a, colorbor= b, colorcara= c) - - if not self.Cria_Bichos: self.Cria_Bichos= Cria_Bichos_Main(self) - - def get_fondo(self, color=(0,0,0,1), tamanio=VG.RESOLUCION): - superficie = pygame.Surface( tamanio, flags=HWSURFACE ) - superficie.fill(color) - return superficie - - def salir(self, button): - pygame.quit() - sys.exit() - + def __init__(self, res= None): + self.resolucionreal= res + # Variables para JAMatrix + self.ventana= None + self.name= "CucaraSims" + + # Variables del Juego + self.fondo= None + self.reloj= None + + # Escalado + self.ventana_real= None + self.VA= None + self.VH= None + + self.sonido_select = None + self.sprites = pygame.sprite.OrderedUpdates() + self.Archivos_y_Directorios = None + self.base_de_datos = None + self.creditos = None + self.dialog_cerrar = None + self.menu = None + self.mensaje = None + self.Cria_Bichos= None + + self.interval = 0 + self.nivel = None + + self.Juegos_guardados = None + + self.preset() + self.load() + self.run() + + def run(self): + self.nivel = "Menu" + self.sprites= self.menu + self.RunMenu() + + def RunMenu(self): + pygame.mouse.set_visible(True) + self.Cria_Bichos.set_musica() + self.fondo= self.get_fondo2() + self.ventana.blit(self.fondo, (0,0)) + self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) + pygame.display.update() + + while self.nivel == "Menu": + self.reloj.tick(35) + while gtk.events_pending(): + gtk.main_iteration(False) + Traduce_posiciones(self.VA, self.VH) + if self.mensaje: self.pause_menu() + self.sprites.clear(self.ventana, self.fondo) + self.sprites.update() + self.handle_event() + pygame.event.clear() + self.sprites.draw(self.ventana) + self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) + pygame.display.update() + + if self.nivel == "CucaraSims": + self.Cria_Bichos.Run() + if self.nivel == "Creditos": + self.RunCreditos() + + def handle_event(self): + if pygame.event.get(pygame.VIDEORESIZE): print "OK" + for event in pygame.event.get(pygame.KEYDOWN): + tecla= event.key + if tecla== pygame.K_ESCAPE: + if self.nivel == "Menu" and not self.mensaje: + self.selecciona_mensaje_cerrar(None) + elif self.nivel == "Creditos": + self.nivel = "Menu" + elif self.mensaje: + self.deselecciona_mensaje(None) + + def pause_menu(self): + self.ventana.blit(self.fondo, (0,0)) + while self.mensaje.sprites(): + self.reloj.tick(35) + while gtk.events_pending(): + gtk.main_iteration(False) + Traduce_posiciones(self.VA, self.VH) + self.mensaje.clear(self.ventana, self.fondo) + self.mensaje.update() + self.handle_event() + pygame.event.clear() + self.mensaje.draw(self.ventana) + self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) + pygame.display.update() + + def deselecciona_mensaje(self, button= None): + self.mensaje= pygame.sprite.OrderedUpdates() + + def selecciona_mensaje_cerrar(self, button= None): + self.mensaje= self.dialog_cerrar + + def selecciona_menu_cargar(self, button= None): + self.deselecciona_mensaje(None) + self.Juegos_guardados= Juegos_Guardados(self.Archivos_y_Directorios, self) + self.mensaje= self.Juegos_guardados + + def cargar_juego(self, datos): + # Carga el juegon Juego guardado seleccionado + # poner todo a cero + self.Cria_Bichos.Bichos.empty() + self.Cria_Bichos.cadaveres.empty() + self.Cria_Bichos.alimento.empty() + self.Cria_Bichos.ootecas.empty() + self.Cria_Bichos.agua.empty() + self.Cria_Bichos.ficha = pygame.sprite.OrderedUpdates() + self.Cria_Bichos.puntos = 0 + self.Cria_Bichos.tiempo_de_juego = 0 + self.Cria_Bichos.horas = 0 + self.Cria_Bichos.dias = 0 + self.Cria_Bichos.anios = 0 + self.Cria_Bichos.machos, self.Cria_Bichos.hembras = 0,0 + + self.Cria_Bichos.secuencia_muda = 0 + self.Cria_Bichos.reproduccion = 0 + self.Cria_Bichos.nacimientos = 0 + self.Cria_Bichos.muertes = 0 + self.Cria_Bichos.plaga = 0 + + # recuperar datos + (base, datos_juego, cucas, ootecas) = datos # return (base, datos_juego, cucas, Ootecas) + + self.base_de_datos = base + + # datos generales del juego + # datos 0 Tabla Juego [anios, dias, horas, puntos] + self.Cria_Bichos.anios = int(datos_juego[1]) + self.Cria_Bichos.dias = int(datos_juego[2]) + self.Cria_Bichos.horas = int(datos_juego[3]) + self.Cria_Bichos.puntos = int(datos_juego[4]) + + for cuca in cucas: + # datos de cucarachas + # datos 1 Tabla Cucas [sexo, anios, dias, horas, hambre, sed] + contador, sexo, anios, dias, horas, hambre, sed = cuca + tipo = None + while tipo != sexo: + bicho = Bicho(self.Cria_Bichos) + tipo = bicho.sexo + self.Cria_Bichos.Bichos.add(bicho) + + if bicho.sexo == "M": + self.Cria_Bichos.machos += 1 + elif bicho.sexo == "F": + self.Cria_Bichos.hembras += 1 + + bicho.anios = int(anios) + bicho.dias = int(dias) + bicho.horas = int(horas) + bicho.hambre = int(hambre) + bicho.sed = int(sed) + + # escalar + for dia in range (0, bicho.dias): + # desde dia cero hasta los dias que tiene el bicho + if dia == bicho.control_mudas: # bicho.control_mudas es una lista de dias de mudas + + indice = bicho.dias_mudas.index(dia) + bicho.set_muda(escala=bicho.escalas_mudas[indice]) # se obtiene el tamaño + bicho.velocidad += int(bicho.velocidad/3) + + if indice+1 < len(bicho.dias_mudas): + bicho.control_mudas = bicho.dias_mudas[indice+1] + else: + bicho.control_mudas = bicho.dias_mudas[0] + + print "CUCA: ", bicho.anios, bicho.dias, bicho.horas, bicho.hambre, bicho.sed + + if self.Cria_Bichos.hembras + self.Cria_Bichos.machos != len(cucas): + print "HAY INCOHERENCIAS DE CANTIDAD DE BICHOS ALMACENADOS/CARGADOS" + + for ooteca in ootecas: + # datos de cucarachas + # datos 2 Tabla ootecas [dias, horas, huevos] + contador, dias, horas, huevos = ooteca + ooteca = Ooteca(self.Cria_Bichos, posicion=(0,0)) + self.Cria_Bichos.ootecas.add(ooteca) + ooteca.dias = int(dias) + ooteca.horas = int(horas) + ooteca.huevos = int(huevos) + print "ooteca: ", ooteca.dias, ooteca.horas, ooteca.huevos + + self.deselecciona_mensaje(None) + self.nivel = "CucaraSims" + + def get_new_game(self, button): + self.base_de_datos= self.Archivos_y_Directorios.CrearBasededatos() + self.Cria_Bichos.get_nuevo_Juego() + if self.base_de_datos: + self.nivel = "CucaraSims" + else: + print "Error al crear la base de datos" + #self.nivel = "CucaraSims" + + def RunCreditos(self): + pygame.mixer.music.load(VG.MUSICA2) + pygame.mixer.music.play(-1, 0.0) + self.ventana.blit(self.fondo, (0,0)) + pygame.display.update() + while self.nivel == "Creditos": + self.reloj.tick(35) + while gtk.events_pending(): + gtk.main_iteration(False) + Traduce_posiciones(self.VA, self.VH) + self.creditos.clear(self.ventana, self.fondo) + self.creditos.update() + self.handle_event() + pygame.event.clear() + self.creditos.draw(self.ventana) + self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) + pygame.display.update() + if self.nivel == "Menu": + self.RunMenu() + + def get_fondo2(self, tamanio=VG.RESOLUCION): + superficie = pygame.transform.scale(pygame.image.load(VG.FONDO4), (VG.RESOLUCION)) + return superficie + + def get_creditos(self, button): + self.nivel= "Creditos" + + def preset(self): + pygame.mouse.set_visible(False) + pygame.display.set_mode( (0,0), pygame.DOUBLEBUF | pygame.FULLSCREEN, 0) + A, B= VG.RESOLUCION + self.ventana= pygame.Surface( (A, B), flags=HWSURFACE ) + self.ventana_real= pygame.display.get_surface() + C, D= (0, 0) + if not self.resolucionreal: + C= pygame.display.Info().current_w + D= pygame.display.Info().current_h + self.resolucionreal= (C,D) + else: + C, D= self.resolucionreal + self.VA= float(C)/float(A) + self.VH= float(D)/float(B) + pygame.display.set_caption("CucaraSims") + pygame.event.set_blocked([JOYAXISMOTION, JOYBALLMOTION, + JOYHATMOTION, JOYBUTTONUP, JOYBUTTONDOWN, + KEYUP, VIDEORESIZE, VIDEOEXPOSE, USEREVENT, QUIT, ACTIVEEVENT]) + pygame.event.set_allowed([MOUSEMOTION, MOUSEBUTTONUP, MOUSEBUTTONDOWN, KEYDOWN]) + + def load(self): + pygame.mixer.init() + if not self.Archivos_y_Directorios: self.Archivos_y_Directorios= Archivos_y_Directorios(VG.DIRECTORIO_DATOS) + if not self.sonido_select: self.sonido_select= JAMG.get_sound_select() + if not self.reloj: self.reloj= pygame.time.Clock() + if not self.fondo: self.fondo= self.get_fondo() + if not self.menu: + self.menu= Menu() + self.menu.boton_nuevo.connect(callback= self.get_new_game, sonido_select= self.sonido_select) + self.menu.boton_cargar.connect(callback= self.selecciona_menu_cargar, sonido_select= self.sonido_select) + self.menu.boton_creditos.connect(callback= self.get_creditos, sonido_select= self.sonido_select) + self.menu.boton_salir.connect(callback= self.selecciona_mensaje_cerrar, sonido_select= self.sonido_select) + + if not self.creditos: self.creditos= Creditos(self) + + if not self.dialog_cerrar: + a,b,c= JAMG.get_estilo_naranja() + self.dialog_cerrar= JAMDialog(mensaje= "¿Deseas Salir del Juego?", + funcion_ok= self.salir, funcion_cancel= self.deselecciona_mensaje) + self.dialog_cerrar.set_colors_dialog(base= c, bordes= b) + self.dialog_cerrar.set_colors_buttons(colorbas= a, colorbor= b, colorcara= c) + + if not self.Cria_Bichos: self.Cria_Bichos= Cria_Bichos_Main(self) + + def get_fondo(self, color=(0,0,0,1), tamanio=VG.RESOLUCION): + superficie = pygame.Surface( tamanio, flags=HWSURFACE ) + superficie.fill(color) + return superficie + + def salir(self, button): + pygame.quit() + sys.exit() + class Menu(pygame.sprite.OrderedUpdates): - def __init__(self): - pygame.sprite.OrderedUpdates.__init__(self) - - separador = 40 - ancho = 500 - alto = 100 - - a,b,c= JAMG.get_estilo_celeste() - self.boton_nuevo = JAMButton("Juego Nuevo", None) - self.boton_cargar = JAMButton("Cargar Juego", None) - self.boton_creditos = JAMButton("Creditos", None) - self.boton_salir = JAMButton("Salir", None) - - self.boton_nuevo.set_text(tamanio= 50) - self.boton_cargar.set_text(tamanio= 50) - self.boton_creditos.set_text(tamanio= 50) - self.boton_salir.set_text(tamanio= 50) - - self.boton_nuevo.set_tamanios(tamanio= (ancho,alto)) - self.boton_cargar.set_tamanios(tamanio= (ancho,alto)) - self.boton_creditos.set_tamanios(tamanio= (ancho,alto)) - self.boton_salir.set_tamanios(tamanio= (ancho,alto)) - - self.boton_nuevo.set_colores(colorbas= a, colorbor= b, colorcara= c) - self.boton_cargar.set_colores(colorbas= a, colorbor= b, colorcara= c) - self.boton_creditos.set_colores(colorbas= a, colorbor= b, colorcara= c) - self.boton_salir.set_colores(colorbas= a, colorbor= b, colorcara= c) - - y = 150 - x = VG.RESOLUCION[0]/2 - self.boton_nuevo.get_tamanio()[0]/2 - self.boton_nuevo.set_posicion(punto=(x,y)) - - y += self.boton_nuevo.get_tamanio()[1] + separador - x = VG.RESOLUCION[0]/2 - self.boton_cargar.get_tamanio()[0]/2 - self.boton_cargar.set_posicion(punto=(x,y)) - - y += self.boton_cargar.get_tamanio()[1] + separador - x = VG.RESOLUCION[0]/2 - self.boton_creditos.get_tamanio()[0]/2 - self.boton_creditos.set_posicion(punto=(x,y)) - - y += self.boton_creditos.get_tamanio()[1] + separador - x = VG.RESOLUCION[0]/2 - self.boton_salir.get_tamanio()[0]/2 - self.boton_salir.set_posicion(punto=(x,y)) - - self.add(self.boton_nuevo) - self.add(self.boton_cargar) - self.add(self.boton_creditos) - self.add(self.boton_salir) - + def __init__(self): + pygame.sprite.OrderedUpdates.__init__(self) + + separador = 40 + ancho = 500 + alto = 100 + + a,b,c= JAMG.get_estilo_celeste() + self.boton_nuevo = JAMButton("Juego Nuevo", None) + self.boton_cargar = JAMButton("Cargar Juego", None) + self.boton_creditos = JAMButton("Creditos", None) + self.boton_salir = JAMButton("Salir", None) + + self.boton_nuevo.set_text(tamanio= 50) + self.boton_cargar.set_text(tamanio= 50) + self.boton_creditos.set_text(tamanio= 50) + self.boton_salir.set_text(tamanio= 50) + + self.boton_nuevo.set_tamanios(tamanio= (ancho,alto)) + self.boton_cargar.set_tamanios(tamanio= (ancho,alto)) + self.boton_creditos.set_tamanios(tamanio= (ancho,alto)) + self.boton_salir.set_tamanios(tamanio= (ancho,alto)) + + self.boton_nuevo.set_colores(colorbas= a, colorbor= b, colorcara= c) + self.boton_cargar.set_colores(colorbas= a, colorbor= b, colorcara= c) + self.boton_creditos.set_colores(colorbas= a, colorbor= b, colorcara= c) + self.boton_salir.set_colores(colorbas= a, colorbor= b, colorcara= c) + + y = 150 + x = VG.RESOLUCION[0]/2 - self.boton_nuevo.get_tamanio()[0]/2 + self.boton_nuevo.set_posicion(punto=(x,y)) + + y += self.boton_nuevo.get_tamanio()[1] + separador + x = VG.RESOLUCION[0]/2 - self.boton_cargar.get_tamanio()[0]/2 + self.boton_cargar.set_posicion(punto=(x,y)) + + y += self.boton_cargar.get_tamanio()[1] + separador + x = VG.RESOLUCION[0]/2 - self.boton_creditos.get_tamanio()[0]/2 + self.boton_creditos.set_posicion(punto=(x,y)) + + y += self.boton_creditos.get_tamanio()[1] + separador + x = VG.RESOLUCION[0]/2 - self.boton_salir.get_tamanio()[0]/2 + self.boton_salir.set_posicion(punto=(x,y)) + + self.add(self.boton_nuevo) + self.add(self.boton_cargar) + self.add(self.boton_creditos) + self.add(self.boton_salir) + class Creditos(pygame.sprite.OrderedUpdates): - def __init__(self, main): - pygame.sprite.OrderedUpdates.__init__(self) - self.grupo1 = {} - self.grupo2 = {} - self.get_sprites() - self.seleccion = 1 - self.velocidad = 4 - - self.main= main - self.cerrar= JAMButton("", None) - self.cerrar.set_imagen(origen= JAMG.get_icon_exit()) - self.cerrar.set_tamanios(grosorbor= 1, espesor= 1) - self.cerrar.set_posicion(punto= (VG.RESOLUCION[0] - self.cerrar.get_tamanio()[0], 0) ) - self.cerrar.connect(callback= self.salir, sonido_select= None) - a,b,c= JAMG.get_estilo_celeste() - self.cerrar.set_colores(colorbas= a, colorbor= b, colorcara= c) - self.add(self.cerrar) - - def salir(self, button): - self.main.nivel = "Menu" - - def update(self): - if self.seleccion == 1: - for num in self.grupo1.keys(): - etiqueta, (x,y) = self.grupo1[num] - x, y= etiqueta.get_posicion() - y -= self.velocidad - etiqueta.set_posicion((x,y)) - if y < -50: - self.seleccion = 2 - for num in self.grupo1.keys(): - etiqueta, (x,y) = self.grupo1[num] - etiqueta.set_posicion((x,y)) - - if self.seleccion == 2: - for num in self.grupo2.keys(): - etiqueta, (x,y) = self.grupo2[num] - x, y= etiqueta.get_posicion() - y -= self.velocidad - etiqueta.set_posicion((x,y)) - if y < -50: - self.seleccion = 1 - for num in self.grupo2.keys(): - etiqueta, (x,y) = self.grupo2[num] - etiqueta.set_posicion((x,y)) - self.cerrar.update() - - 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 = ["Idea Original, Edición de Audio y Video,", - "Diseño Gráfico, Desarrollo y Contenidos:", - "Flavio Danesse - fdanesse@gmail.com", - "Imágenes e Información: Wikipedia - Wikiespecies", - "Música: MATI - ARUAL - http://www.jamendo.com"] - - color= JAMG.get_celeste1() - contador= 1 - - #logo= JAMLabel("") - #logo.set_imagen(origen= VG.LOGO) - logo= Logo() - x, y = VG.RESOLUCION[0]/2 - logo.get_tamanio()[0]/2, VG.RESOLUCION[1] - 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(texto) - etiqueta.set_text(tamanio= 40, color= color) - - x = VG.RESOLUCION[0]/2 - etiqueta.get_tamanio()[0]/2 - etiqueta.set_posicion((x,y)) - self.add(etiqueta) - self.grupo1[contador] = etiqueta, (x,y) - y += 100 - contador += 1 - - contador = 1 - y = VG.RESOLUCION[1] - for texto in Textos2: - etiqueta= JAMLabel(texto) - etiqueta.set_text(tamanio= 40, color= color) - x = VG.RESOLUCION[0]/2 - etiqueta.get_tamanio()[0]/2 - etiqueta.set_posicion((x,y)) - self.add(etiqueta) - self.grupo2[contador] = etiqueta, (x,y) - y += 100 - contador += 1 - + def __init__(self, main): + pygame.sprite.OrderedUpdates.__init__(self) + self.grupo1 = {} + self.grupo2 = {} + self.get_sprites() + self.seleccion = 1 + self.velocidad = 4 + + self.main= main + self.cerrar= JAMButton("", None) + self.cerrar.set_imagen(origen= JAMG.get_icon_exit()) + self.cerrar.set_tamanios(grosorbor= 1, espesor= 1) + self.cerrar.set_posicion(punto= (VG.RESOLUCION[0] - self.cerrar.get_tamanio()[0], 0) ) + self.cerrar.connect(callback= self.salir, sonido_select= None) + a,b,c= JAMG.get_estilo_celeste() + self.cerrar.set_colores(colorbas= a, colorbor= b, colorcara= c) + self.add(self.cerrar) + + def salir(self, button): + self.main.nivel = "Menu" + + def update(self): + if self.seleccion == 1: + for num in self.grupo1.keys(): + etiqueta, (x,y) = self.grupo1[num] + x, y= etiqueta.get_posicion() + y -= self.velocidad + etiqueta.set_posicion((x,y)) + if y < -50: + self.seleccion = 2 + for num in self.grupo1.keys(): + etiqueta, (x,y) = self.grupo1[num] + etiqueta.set_posicion((x,y)) + + if self.seleccion == 2: + for num in self.grupo2.keys(): + etiqueta, (x,y) = self.grupo2[num] + x, y= etiqueta.get_posicion() + y -= self.velocidad + etiqueta.set_posicion((x,y)) + if y < -50: + self.seleccion = 1 + for num in self.grupo2.keys(): + etiqueta, (x,y) = self.grupo2[num] + etiqueta.set_posicion((x,y)) + self.cerrar.update() + + 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 = ["Idea Original, Edición de Audio y Video,", + "Diseño Gráfico, Desarrollo y Contenidos:", + "Flavio Danesse - fdanesse@gmail.com", + "Imágenes e Información: Wikipedia - Wikiespecies", + "Música: MATI - ARUAL - http://www.jamendo.com"] + + color= JAMG.get_celeste1() + contador= 1 + + #logo= JAMLabel("") + #logo.set_imagen(origen= VG.LOGO) + logo= Logo() + x, y = VG.RESOLUCION[0]/2 - logo.get_tamanio()[0]/2, VG.RESOLUCION[1] + 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(texto) + etiqueta.set_text(tamanio= 40, color= color) + + x = VG.RESOLUCION[0]/2 - etiqueta.get_tamanio()[0]/2 + etiqueta.set_posicion((x,y)) + self.add(etiqueta) + self.grupo1[contador] = etiqueta, (x,y) + y += 100 + contador += 1 + + contador = 1 + y = VG.RESOLUCION[1] + for texto in Textos2: + etiqueta= JAMLabel(texto) + etiqueta.set_text(tamanio= 40, color= color) + x = VG.RESOLUCION[0]/2 - etiqueta.get_tamanio()[0]/2 + etiqueta.set_posicion((x,y)) + self.add(etiqueta) + self.grupo2[contador] = etiqueta, (x,y) + y += 100 + contador += 1 + class Logo(pygame.sprite.Sprite): - def __init__(self): - pygame.sprite.Sprite.__init__(self) - self.image= pygame.image.load(VG.LOGO) - self.rect= self.image.get_rect() - def get_tamanio(self): - return (self.rect.w, self.rect.h) - def set_posicion(self, punto= (0,0)): - self.rect.x, self.rect.y= punto - def get_posicion(self, punto= (0,0)): - return (self.rect.x, self.rect.y) - + def __init__(self): + pygame.sprite.Sprite.__init__(self) + self.image= pygame.image.load(VG.LOGO) + self.rect= self.image.get_rect() + def get_tamanio(self): + return (self.rect.w, self.rect.h) + def set_posicion(self, punto= (0,0)): + self.rect.x, self.rect.y= punto + def get_posicion(self, punto= (0,0)): + return (self.rect.x, self.rect.y) + class Juegos_Guardados(pygame.sprite.OrderedUpdates): - def __init__(self, archivosydirectorios, main): - pygame.sprite.OrderedUpdates.__init__(self) - self.juego_base= main - self.Archivos_y_Directorios= archivosydirectorios - lista_juegos_guardados= self.Archivos_y_Directorios.get_juegos() - self.directorio= lista_juegos_guardados[0] # string - self.juegos= lista_juegos_guardados[1] # lista - - y = 50 - self.items = [] - w, h= (0,0) - for juego in self.juegos: - item= Item_Juego(self.Archivos_y_Directorios, juego, self) - item.agregate(self) - if item.etiqueta_juego.get_tamanio()[1] > h: h= item.etiqueta_juego.get_tamanio()[1] - if item.etiqueta_juego.get_tamanio()[0] > w: w= item.etiqueta_juego.get_tamanio()[0] - self.items.append(item) - for item in self.items: - x= VG.RESOLUCION[0]/2 - w/2 - item.set_posicion(punto= (x, y)) - y+= h+ 30 - - self.cerrar= JAMButton("", None) - self.cerrar.set_imagen(origen= JAMG.get_icon_exit()) - self.cerrar.set_tamanios(grosorbor= 1, espesor= 1) - self.cerrar.set_posicion(punto= (VG.RESOLUCION[0] - self.cerrar.get_tamanio()[0], 0) ) - self.cerrar.connect(callback= self.salir, sonido_select= None) - a,b,c= JAMG.get_estilo_celeste() - self.cerrar.set_colores(colorbas= a, colorbor= b, colorcara= c) - - self.add(self.cerrar) - - def salir(self, button= None): - self.juego_base.deselecciona_mensaje(None) - - def reordenar_juegos(self, item): - self.items.remove(item) - #y= 50 - #for item in self.items: - # x = VG.RESOLUCION[0]/2 - item.etiqueta_juego.rect.w/2 - # item.set_posicion(punto= (x, y)) - # y += item.etiqueta_juego.get_tamanio()[1] + 30 - + def __init__(self, archivosydirectorios, main): + pygame.sprite.OrderedUpdates.__init__(self) + self.juego_base= main + self.Archivos_y_Directorios= archivosydirectorios + lista_juegos_guardados= self.Archivos_y_Directorios.get_juegos() + self.directorio= lista_juegos_guardados[0] # string + self.juegos= lista_juegos_guardados[1] # lista + + y = 50 + self.items = [] + w, h= (0,0) + for juego in self.juegos: + item= Item_Juego(self.Archivos_y_Directorios, juego, self) + item.agregate(self) + if item.etiqueta_juego.get_tamanio()[1] > h: h= item.etiqueta_juego.get_tamanio()[1] + if item.etiqueta_juego.get_tamanio()[0] > w: w= item.etiqueta_juego.get_tamanio()[0] + self.items.append(item) + for item in self.items: + x= VG.RESOLUCION[0]/2 - w/2 + item.set_posicion(punto= (x, y)) + y+= h+ 30 + + self.cerrar= JAMButton("", None) + self.cerrar.set_imagen(origen= JAMG.get_icon_exit()) + self.cerrar.set_tamanios(grosorbor= 1, espesor= 1) + self.cerrar.set_posicion(punto= (VG.RESOLUCION[0] - self.cerrar.get_tamanio()[0], 0) ) + self.cerrar.connect(callback= self.salir, sonido_select= None) + a,b,c= JAMG.get_estilo_celeste() + self.cerrar.set_colores(colorbas= a, colorbor= b, colorcara= c) + + self.add(self.cerrar) + + def salir(self, button= None): + self.juego_base.deselecciona_mensaje(None) + + def reordenar_juegos(self, item): + self.items.remove(item) + #y= 50 + #for item in self.items: + # x = VG.RESOLUCION[0]/2 - item.etiqueta_juego.rect.w/2 + # item.set_posicion(punto= (x, y)) + # y += item.etiqueta_juego.get_tamanio()[1] + 30 + class Item_Juego(): - def __init__(self, archivosydirectorios, juego, grupo): - self.grupo= grupo - self.Archivos_y_Directorios= archivosydirectorios - self.juego= juego - self.separador= 10 - - a,b,c= JAMG.get_estilo_celeste() - self.etiqueta_juego= JAMLabel(juego) - self.etiqueta_juego.set_text(tamanio= 40) - self.etiqueta_juego.set_text(color= c) - - self.boton_borrar= JAMButton("Borrar", None) - self.boton_borrar.set_text(tamanio= 30) - self.boton_borrar.set_tamanios(tamanio= (50, self.etiqueta_juego.get_tamanio()[1]), grosorbor= 1, espesor= 1) - self.boton_borrar.set_colores(colorbas= a, colorbor= b, colorcara= c) - - self.boton_load= JAMButton("Cargar", None) - self.boton_load.set_text(tamanio= 30) - self.boton_load.set_tamanios(tamanio= (50, self.etiqueta_juego.get_tamanio()[1]), grosorbor= 1, espesor= 1) - self.boton_load.set_colores(colorbas= a, colorbor= b, colorcara= c) - - 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.etiqueta_juego) - grupo.add(self.boton_borrar) - grupo.add(self.boton_load) - - def set_posicion(self, punto= (0,0)): - (x,y)= punto - self.etiqueta_juego.set_posicion((x,y)) - a= x - self.separador - self.boton_borrar.get_tamanio()[0] - self.boton_borrar.set_posicion((a,y)) - b= x + self.separador + self.etiqueta_juego.get_tamanio()[0] - self.boton_load.set_posicion((b,y)) - - def delete_game(self, button= None): - self.Archivos_y_Directorios.borrar_tabla(self.juego) - self.etiqueta_juego.kill() - self.boton_borrar.kill() - self.boton_load.kill() - self.grupo.reordenar_juegos(self) - return - - def carga_game(self, button= None): - self.grupo.juego_base.cargar_juego(self.Archivos_y_Directorios.Leer_Base_de_Datos(self.juego)) - + def __init__(self, archivosydirectorios, juego, grupo): + self.grupo= grupo + self.Archivos_y_Directorios= archivosydirectorios + self.juego= juego + self.separador= 10 + + a,b,c= JAMG.get_estilo_celeste() + self.etiqueta_juego= JAMLabel(juego) + self.etiqueta_juego.set_text(tamanio= 40) + self.etiqueta_juego.set_text(color= c) + + self.boton_borrar= JAMButton("Borrar", None) + self.boton_borrar.set_text(tamanio= 30) + self.boton_borrar.set_tamanios(tamanio= (50, self.etiqueta_juego.get_tamanio()[1]), grosorbor= 1, espesor= 1) + self.boton_borrar.set_colores(colorbas= a, colorbor= b, colorcara= c) + + self.boton_load= JAMButton("Cargar", None) + self.boton_load.set_text(tamanio= 30) + self.boton_load.set_tamanios(tamanio= (50, self.etiqueta_juego.get_tamanio()[1]), grosorbor= 1, espesor= 1) + self.boton_load.set_colores(colorbas= a, colorbor= b, colorcara= c) + + 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.etiqueta_juego) + grupo.add(self.boton_borrar) + grupo.add(self.boton_load) + + def set_posicion(self, punto= (0,0)): + (x,y)= punto + self.etiqueta_juego.set_posicion((x,y)) + a= x - self.separador - self.boton_borrar.get_tamanio()[0] + self.boton_borrar.set_posicion((a,y)) + b= x + self.separador + self.etiqueta_juego.get_tamanio()[0] + self.boton_load.set_posicion((b,y)) + + def delete_game(self, button= None): + self.Archivos_y_Directorios.borrar_tabla(self.juego) + self.etiqueta_juego.kill() + self.boton_borrar.kill() + self.boton_load.kill() + self.grupo.reordenar_juegos(self) + return + + def carga_game(self, button= None): + self.grupo.juego_base.cargar_juego(self.Archivos_y_Directorios.Leer_Base_de_Datos(self.juego)) + \ No newline at end of file -- cgit v0.9.1