#!/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 import os import gc import sys import random import gtk import gobject from pygame.locals import * import Globals as G gc.enable() import BiblioJAM from BiblioJAM.JAMButton import JAMButton import BiblioJAM.JAMGlobals as JAMG class Grupos(gtk.Widget): __gsignals__ = {"run_game":(gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (gobject.TYPE_STRING,)), "back":(gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, [])} def __init__(self, grupo, usuario): gtk.Widget.__init__(self) self.usuario = usuario self.grupo = grupo self.ventana = None self.estado = False self.fondo = None self.reloj = None self.botonesmenu = None self.ventana_real = None self.resolucionreal = None self.VA = None self.VH = None self.load() self.estado = "Intro" def run(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 presentacion(self, button): presentacion = Presentacion(self) self.ventana.blit(self.fondo, (0,0)) presentacion.draw(self.ventana) pygame.display.update() while presentacion.estado: self.reloj.tick(35) while gtk.events_pending(): gtk.main_iteration(False) G.Traduce_posiciones(self.VA, self.VH) presentacion.clear(self.ventana, self.fondo) presentacion.update() pygame.event.clear() presentacion.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() imagen = os.path.join(G.IMAGENES, "Login", "fondo.jpg") self.fondo = pygame.transform.scale(pygame.image.load(imagen), G.RESOLUCION) self.ventana.blit(self.fondo, (0,0)) self.botonesmenu.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() def update(self): self.ventana.blit(self.fondo, (0,0)) self.botonesmenu.draw(self.ventana) self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0)) pygame.display.update() def emit_volver(self, button=None): self.estado = None self.emit("back") # Juegos Grupo 1 def run_game11(self, jambutton): self.estado = None self.emit("run_game", "FGR_T0101") def run_game12(self, jambutton): self.estado = None self.emit("run_game", "FGR_T0102") # Juegos Grupo 2 def run_game21(self, jambutton): self.estado = None self.emit("run_game", "FGR_T0201") def run_game22(self, jambutton): self.estado = None self.emit("run_game", "FGR_T0202") # Juegos Grupo 3 def run_game31(self, jambutton): self.estado = None self.emit("run_game", "FGR_T0301") def run_game32(self, jambutton): self.estado = None self.emit("run_game", "FGR_T0302") def run_game33(self, jambutton): self.estado = None self.emit("run_game", "FGR_T0303") # Juegos Grupo 4 def run_game41(self, jambutton): self.estado = None self.emit("run_game", "FGR_T0401") def run_game42(self, jambutton): self.estado = None self.emit("run_game", "FGR_T0402") # Juegos Grupo 5 def run_game51(self, jambutton): self.estado = None self.emit("run_game", "FGR_T0501") def handle_event_Intro(self): for event in pygame.event.get(pygame.KEYDOWN): tecla = event.key if tecla == pygame.K_ESCAPE: pygame.event.clear() self.run_dialog_intro(None) def load(self): 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) imagen = os.path.join(G.IMAGENES, "Login", "fondo.jpg") self.fondo = pygame.transform.scale(pygame.image.load(imagen), G.RESOLUCION) self.botonesmenu = ButtonsMenu(self) self.reloj = pygame.time.Clock() 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.emit_volver() def cancel_intro(self, button): self.estado = "Intro" 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, sonido_select = None) self.add(salir) imagen = main.usuario['personaje'] user = JAMButton(main.usuario['nombre'],None) user.set_imagen(origen = imagen, tamanio = (60,60)) user.set_colores(colorbas = (0,153,255,255), colorbor = (0,153,255,255), colorcara = (0,153,255,255)) user.set_tamanios(tamanio = (80,80), grosorbor = 1, detalle = 1, espesor = 1) ww, hh = user.get_tamanio() w,h = G.RESOLUCION user.set_posicion(punto = (w - ww - 10,10)) user.connect(callback = None, sonido_select = None) self.add(user) if main.grupo == "grupo1": grupo = JAMButton('', None) grupo.set_tamanios(tamanio = (0,0), grosorbor = 1, detalle = 1, espesor = 1) imagen = os.path.join(G.IMAGENES, "Menu", "img1.png") grupo.set_imagen(origen = imagen) grupo.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (255,255,255,255)) grupo.connect(callback = None, sonido_select = None) self.add(grupo) uno = JAMButton('T0101', None) uno.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img1.png") #uno.set_imagen(origen = imagen) uno.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (0,153,255,255)) uno.connect(callback = main.run_game11, sonido_select = None) self.add(uno) dos = JAMButton('T0102', None) dos.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img2.png") #dos.set_imagen(origen = imagen) dos.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (0,153,255,255)) dos.connect(callback = main.run_game12, sonido_select = None) self.add(dos) tres = JAMButton('', None) tres.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img3.png") #tres.set_imagen(origen = imagen) tres.set_colores(colorbas = (0,153,255,255), colorbor = (0,153,255,255), colorcara = (0,153,255,255)) tres.connect(callback = None, sonido_select = None) self.add(tres) cuatro = JAMButton('', None) cuatro.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img4.png") #cuatro.set_imagen(origen = imagen) cuatro.set_colores(colorbas = (0,153,255,255), colorbor = (0,153,255,255), colorcara = (0,153,255,255)) cuatro.connect(callback = None, sonido_select = None) self.add(cuatro) if main.grupo == "grupo2": grupo = JAMButton('', None) grupo.set_tamanios(tamanio = (0,0), grosorbor = 1, detalle = 1, espesor = 1) imagen = os.path.join(G.IMAGENES, "Menu", "img2.png") grupo.set_imagen(origen = imagen) grupo.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (255,255,255,255)) grupo.connect(callback = None, sonido_select = None) self.add(grupo) uno = JAMButton('T0201', None) uno.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img1.png") #uno.set_imagen(origen = imagen) uno.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (0,153,255,255)) uno.connect(callback = main.run_game21, sonido_select = None) self.add(uno) dos = JAMButton('T0202', None) dos.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img2.png") #dos.set_imagen(origen = imagen) dos.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (0,153,255,255)) dos.connect(callback = main.run_game22, sonido_select = None) self.add(dos) tres = JAMButton('', None) tres.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img3.png") #tres.set_imagen(origen = imagen) tres.set_colores(colorbas = (0,153,255,255), colorbor = (0,153,255,255), colorcara = (0,153,255,255)) tres.connect(callback = None, sonido_select = None) self.add(tres) cuatro = JAMButton('', None) cuatro.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img4.png") #cuatro.set_imagen(origen = imagen) cuatro.set_colores(colorbas = (0,153,255,255), colorbor = (0,153,255,255), colorcara = (0,153,255,255)) cuatro.connect(callback = None, sonido_select = None) self.add(cuatro) if main.grupo == "grupo3": grupo = JAMButton('', None) grupo.set_tamanios(tamanio = (0,0), grosorbor = 1, detalle = 1, espesor = 1) imagen = os.path.join(G.IMAGENES, "Menu", "img3.png") grupo.set_imagen(origen = imagen) grupo.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (255,255,255,255)) grupo.connect(callback = None, sonido_select = None) self.add(grupo) uno = JAMButton('T0301', None) uno.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img1.png") #uno.set_imagen(origen = imagen) uno.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (0,153,255,255)) uno.connect(callback = main.run_game31, sonido_select = None) self.add(uno) dos = JAMButton('T0302', None) dos.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img2.png") #dos.set_imagen(origen = imagen) dos.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (0,153,255,255)) dos.connect(callback = main.run_game32, sonido_select = None) self.add(dos) tres = JAMButton('T0303', None) tres.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img3.png") #tres.set_imagen(origen = imagen) tres.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (0,153,255,255)) tres.connect(callback = main.run_game33, sonido_select = None) self.add(tres) cuatro = JAMButton('', None) cuatro.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img4.png") #cuatro.set_imagen(origen = imagen) cuatro.set_colores(colorbas = (0,153,255,255), colorbor = (0,153,255,255), colorcara = (0,153,255,255)) cuatro.connect(callback = None, sonido_select = None) self.add(cuatro) if main.grupo == "grupo4": grupo = JAMButton('', None) grupo.set_tamanios(tamanio = (0,0), grosorbor = 1, detalle = 1, espesor = 1) imagen = os.path.join(G.IMAGENES, "Menu", "img4.png") grupo.set_imagen(origen = imagen) grupo.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (255,255,255,255)) grupo.connect(callback = None, sonido_select = None) self.add(grupo) uno = JAMButton('T0401', None) uno.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img1.png") #uno.set_imagen(origen = imagen) uno.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (0,153,255,255)) uno.connect(callback = main.run_game41, sonido_select = None) self.add(uno) dos = JAMButton('T0402', None) dos.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img2.png") #dos.set_imagen(origen = imagen) dos.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (0,153,255,255)) dos.connect(callback = main.run_game42, sonido_select = None) self.add(dos) tres = JAMButton('', None) tres.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img3.png") #tres.set_imagen(origen = imagen) tres.set_colores(colorbas = (0,153,255,255), colorbor = (0,153,255,255), colorcara = (0,153,255,255)) tres.connect(callback = None, sonido_select = None) self.add(tres) cuatro = JAMButton('', None) cuatro.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img4.png") #cuatro.set_imagen(origen = imagen) cuatro.set_colores(colorbas = (0,153,255,255), colorbor = (0,153,255,255), colorcara = (0,153,255,255)) cuatro.connect(callback = None, sonido_select = None) self.add(cuatro) if main.grupo == "grupo5": grupo = JAMButton('', None) grupo.set_tamanios(tamanio = (0,0), grosorbor = 1, detalle = 1, espesor = 1) imagen = os.path.join(G.IMAGENES, "Menu", "img5.png") grupo.set_imagen(origen = imagen) grupo.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (255,255,255,255)) grupo.connect(callback = None, sonido_select = None) self.add(grupo) uno = JAMButton('T0501', None) uno.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img1.png") #uno.set_imagen(origen = imagen) uno.set_colores(colorbas = (255,255,255,255), colorbor = (255,255,255,255), colorcara = (0,153,255,255)) uno.connect(callback = main.run_game51, sonido_select = None) self.add(uno) dos = JAMButton('', None) dos.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img2.png") #dos.set_imagen(origen = imagen) dos.set_colores(colorbas = (0,153,255,255), colorbor = (0,153,255,255), colorcara = (0,153,255,255)) dos.connect(callback = None, sonido_select = None) self.add(dos) tres = JAMButton('', None) tres.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img3.png") #tres.set_imagen(origen = imagen) tres.set_colores(colorbas = (0,153,255,255), colorbor = (0,153,255,255), colorcara = (0,153,255,255)) tres.connect(callback = None, sonido_select = None) self.add(tres) cuatro = JAMButton('', None) cuatro.set_tamanios(tamanio = (264,264), grosorbor = 1, detalle = 1, espesor = 1) #imagen = os.path.join(G.IMAGENES, "Menu", "img4.png") #cuatro.set_imagen(origen = imagen) cuatro.set_colores(colorbas = (0,153,255,255), colorbor = (0,153,255,255), colorcara = (0,153,255,255)) cuatro.connect(callback = None, sonido_select = None) self.add(cuatro) sep = 50 w,h = G.RESOLUCION a,b = salir.get_posicion() c, d = salir.get_tamanio() grupo.set_posicion( (a,b+d+sep ) ) ww, hh = uno.get_tamanio() uno.set_posicion( (w/2-ww/2, b+d+sep) ) x, y = uno.get_posicion() tres.set_posicion( (x, y + hh + sep) ) dos.set_posicion( (x + ww + sep, y) ) x, y = dos.get_posicion() cuatro.set_posicion( (x, y + hh + sep) )