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.py182
1 files changed, 182 insertions, 0 deletions
diff --git a/Main.py b/Main.py
new file mode 100644
index 0000000..ca5b677
--- /dev/null
+++ b/Main.py
@@ -0,0 +1,182 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# Main.py por: Flavio Danesse fdanesse@gmail.com
+# https://sites.google.com/site/flaviodanesse/
+# https://sites.google.com/site/sugaractivities/
+# http://codigosdeejemplo.blogspot.com/
+
+import pygame, gc, sys, random, gtk, pygtk
+from pygame.locals import *
+
+import Globals as G
+gc.enable()
+
+import BiblioJAM
+from BiblioJAM.JAMButton import JAMButton
+import BiblioJAM.JAMGlobals as JAMG
+from Menu import Menu
+
+class Main():
+ def __init__(self):
+ # Variables para JAMatrix
+ self.ventana= None
+ self.name= "Derecho a Transitar"
+ self.estado= False
+
+ # Variables del Juego
+ self.fondo= None
+ self.reloj= None
+ self.ambiente= None
+
+ # Sprites
+ self.botonesmenu= None
+
+ # Escalado
+ self.ventana_real= None
+ self.resolucionreal= None
+ self.VA= None
+ self.VH= None
+
+ self.preset()
+
+ from BiblioJAM.JAMatrix import JAMatrix
+ matrix= JAMatrix(self, self.ventana_real, self.resolucionreal)
+ matrix.set_imagen_matrix(None)
+ matrix.carga_game()
+
+ self.estado= "Intro"
+ self.switch()
+
+ def run_menu(self):
+ self.ventana.blit(self.fondo, (0,0))
+ self.botonesmenu.draw(self.ventana)
+ pygame.display.update()
+ while self.estado == "Intro":
+ self.reloj.tick(35)
+ while gtk.events_pending():
+ gtk.main_iteration(False)
+ G.Traduce_posiciones(self.VA, self.VH)
+ self.botonesmenu.clear(self.ventana, self.fondo)
+ self.botonesmenu.update()
+ self.handle_event_Intro()
+ pygame.event.clear()
+ self.botonesmenu.draw(self.ventana)
+ self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0))
+ pygame.display.update()
+
+ def run_game(self, button):
+ self.fondo= None
+ self.reloj= None
+ #self.ambiente= None
+ for boton in self.botonesmenu:
+ boton.kill()
+ self.botonesmenu= None
+ pygame.time.wait(5)
+ return Menu()
+
+ def switch(self):
+ if self.estado== "Intro":
+ self.set_event_intro()
+ return self.run_menu()
+
+ # ----------- EVENTOS en MENU ---------------
+ def handle_event_Intro(self):
+ for event in pygame.event.get(pygame.KEYDOWN):
+ tecla= event.key
+ if tecla== pygame.K_ESCAPE:
+ return self.run_dialog_intro(None)
+
+ # ----------- SETEOS -------------
+ def preset(self):
+ pygame.display.set_mode( (0,0), pygame.DOUBLEBUF | pygame.FULLSCREEN, 0)
+ A, B= G.RESOLUCION
+ self.ventana = pygame.Surface( (A, B), flags=HWSURFACE )
+ self.ventana_real= pygame.display.get_surface()
+ C= pygame.display.Info().current_w
+ D= pygame.display.Info().current_h
+ self.resolucionreal= (C,D)
+ self.VA= float(C)/float(A)
+ self.VH= float(D)/float(B)
+
+ def load(self):
+ self.fondo= G.get_Fondo_Inicial()
+ self.ambiente= G.get_ambiente()
+ self.botonesmenu= ButtonsMenu(self)
+ self.reloj = pygame.time.Clock()
+ #pygame.mixer.music.play(-1)
+ self.estado= True
+
+ def set_event_intro(self):
+ pygame.event.set_blocked([JOYAXISMOTION, JOYBALLMOTION, JOYHATMOTION, JOYBUTTONUP, JOYBUTTONDOWN, KEYUP, USEREVENT])
+ pygame.event.set_allowed([MOUSEMOTION, MOUSEBUTTONUP, MOUSEBUTTONDOWN, KEYDOWN, VIDEORESIZE, VIDEOEXPOSE, QUIT, ACTIVEEVENT])
+ pygame.mouse.set_visible(True)
+
+ def run_dialog_intro(self, button):
+ from BiblioJAM.JAMDialog import JAMDialog
+ dialog= JAMDialog(mensaje="¿Abandonas el Juego?", funcion_ok=self.ok_intro, funcion_cancel=self.cancel_intro)
+ fuente, tamanio= JAMG.get_Font_fawn()
+ dialog.set_font_from_file(fuente, tamanio= 40)
+ dialog.boton_aceptar.set_font_from_file(fuente, tamanio= 25)
+ dialog.boton_cancelar.set_font_from_file(fuente, tamanio= 25)
+ a,b,c= JAMG.get_estilo_papel_quemado()
+ dialog.set_colors_dialog(base=c, bordes=c)
+ dialog.set_colors_buttons(colorbas=a, colorbor=b, colorcara=c)
+ self.estado= "Dialog"
+ dialog.draw(self.ventana)
+ pygame.display.update()
+ while self.estado== "Dialog":
+ self.reloj.tick(35)
+ while gtk.events_pending():
+ gtk.main_iteration(False)
+ G.Traduce_posiciones(self.VA, self.VH)
+ dialog.clear(self.ventana, self.fondo)
+ dialog.update()
+ pygame.event.clear()
+ dialog.draw(self.ventana)
+ self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0))
+ pygame.display.update()
+
+ dialog.clear(self.ventana, self.fondo)
+ self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0))
+ pygame.display.update()
+
+ def ok_intro(self, button):
+ return self.salir()
+ def cancel_intro(self, button):
+ self.estado= "Intro"
+ # ----------- EVENTOS en MENU ---------------
+
+ def salir(self):
+ pygame.quit()
+ sys.exit()
+
+# --------- Botones en Menu (Salir y juegos) ------------------
+class ButtonsMenu(pygame.sprite.OrderedUpdates):
+ def __init__(self, main):
+ pygame.sprite.OrderedUpdates.__init__(self)
+ imagen= G.get_Flecha()
+
+ salir= JAMButton("",None)
+ salir.set_imagen(origen= imagen, tamanio=(100,55))
+ salir.set_colores(colorbas=JAMG.get_negro(), colorcara=JAMG.get_negro())
+ salir.set_tamanios(tamanio=(0,0), grosorbor=1, detalle=1, espesor=1)
+ salir.set_posicion(punto= (10,10))
+ salir.connect (callback= main.run_dialog_intro)
+ self.add(salir)
+
+ jugar= JAMButton("",None)
+ jugar.set_imagen(origen= imagen, tamanio=(100,55))
+ jugar.set_colores(colorbas=JAMG.get_negro(), colorcara=JAMG.get_negro())
+ jugar.set_tamanios(tamanio=(0,0), grosorbor=1, detalle=1, espesor=1)
+ jugar.set_posicion(punto= (1000,800))
+ jugar.connect (callback= main.run_game)
+ self.add(jugar)
+ jugar.final_select= pygame.transform.flip(jugar.final_select, True, False)
+ jugar.final_unselect= pygame.transform.flip(jugar.final_unselect, True, False )
+ jugar.image = jugar.final_unselect.copy()
+# --------- Botones en Menu (Salir y juegos) ------------------
+
+if __name__ == "__main__":
+ pygame.init()
+ Main()