Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Main.py
diff options
context:
space:
mode:
Diffstat (limited to 'Main.py')
-rw-r--r--Main.py1109
1 files changed, 558 insertions, 551 deletions
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