Ejemplo n.º 1
0
    def load(self):
        if not self.ventana: self.ventana = self.menu_principal.ventana
        pygame.event.set_blocked([
            JOYAXISMOTION, JOYBALLMOTION, JOYHATMOTION, JOYBUTTONUP,
            JOYBUTTONDOWN, KEYUP, VIDEORESIZE, VIDEOEXPOSE, USEREVENT, QUIT,
            ACTIVEEVENT
        ])
        pygame.event.set_allowed(
            [MOUSEMOTION, MOUSEBUTTONUP, MOUSEBUTTONDOWN, KEYDOWN])
        pygame.mouse.set_visible(True)

        if not self.Bichos: self.Bichos = Bichos_Cantores(self)
        if not self.reloj: self.reloj = pygame.time.Clock()
        if not self.fondo: self.fondo = self.get_fondo()

        if not self.dialog:
            self.dialog = JAMDialog()
            self.dialog.set_text(tamanio=40)

        if not pygame.mixer.get_init():
            pygame.mixer.init(44100, -16, 2, 2048)
        pygame.mixer.music.set_volume(1.0)
        self.estado = True
Ejemplo n.º 2
0
class Main():
    def __init__(self, res):
        self.resolucionreal = res
        self.ventana = None
        self.name = "JAMClock"
        self.ventana_real = None
        self.VA = None
        self.VH = None

        # Variables del Juego
        self.fondo = None
        self.reloj = None
        self.estado = False

        self.sonidoalarma = None
        self.duracionalarma = None
        self.jamclock = None
        self.jamcalendar = None
        self.cerrar = None
        self.controlalarma = None
        self.controles = None

        self.mensaje = None
        self.dialog = None

        self.preset()
        self.load()
        self.run()

    def preset(self):
        pygame.display.set_mode((0, 0), pygame.DOUBLEBUF | pygame.FULLSCREEN,
                                0)
        A, B = RESOLUCION
        self.ventana = pygame.Surface((A, B), flags=HWSURFACE)
        self.ventana_real = pygame.display.get_surface()
        C, D = (0, 0)
        if self.resolucionreal:
            C, D = self.resolucionreal
        else:
            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):
        pygame.event.set_blocked([
            JOYAXISMOTION, JOYBALLMOTION, JOYHATMOTION, JOYBUTTONUP,
            JOYBUTTONDOWN
        ])
        pygame.event.set_allowed([
            MOUSEMOTION, MOUSEBUTTONUP, MOUSEBUTTONDOWN, KEYDOWN, KEYUP,
            VIDEORESIZE, VIDEOEXPOSE, USEREVENT, QUIT, ACTIVEEVENT
        ])
        pygame.mouse.set_visible(True)

        a, b, c = JAMG.get_estilo_papel_quemado()
        if not self.reloj: self.reloj = pygame.time.Clock()
        if not self.fondo: self.fondo = self.get_fondo(color=b)

        if not self.dialog:
            self.dialog = JAMDialog()
            self.dialog.set_text(tamanio=24)
            d, e, f = JAMG.get_estilo_celeste()
            self.dialog.set_colors_dialog(base=e, bordes=f)
            self.dialog.set_colors_buttons(colorbas=a, colorbor=b, colorcara=c)
            self.dialog.set_text_buttons(tamanio=24)

        if not pygame.mixer.get_init():
            pygame.mixer.init(44100, -16, 2, 2048)
        pygame.mixer.music.set_volume(1.0)

        if not self.controles: self.controles = pygame.sprite.OrderedUpdates()
        if not self.cerrar:
            self.cerrar = JAMButton("", JAMG.get_icon_exit())
            self.cerrar.set_imagen(origen=JAMG.get_icon_exit(),
                                   tamanio=(20, 20))
            self.cerrar.set_tamanios(tamanio=(0, 0), grosorbor=1, espesor=1)
            self.cerrar.set_colores(colorbas=a, colorbor=b, colorcara=c)
            x = RESOLUCION[0] - self.cerrar.get_tamanio()[0]
            self.cerrar.set_posicion(punto=(x, 0))
            self.cerrar.connect(callback=self.selecciona_mensaje_salir)
        if not self.jamclock:
            self.jamclock = JAMClock()
            self.jamclock.set_tamanios(2)
            self.jamclock.set_colors_base(c, a)
            y = self.cerrar.get_tamanio()[1] + SEPARADOR
            self.jamclock.set_posicion(punto=(SEPARADOR, y))
            self.sonidoalarma = JAMG.get_alarma_reloj1()
            self.duracionalarma = 30
        if not self.jamcalendar:
            self.jamcalendar = JAMCalendar()
            self.jamcalendar.set_gama_colors(colorselect=a,
                                             colorbor=b,
                                             colorcara=c)
            self.jamcalendar.set_text(tamanio=24)
            x = RESOLUCION[0] - self.jamcalendar.get_tamanio()[0] - SEPARADOR
            y = self.cerrar.get_tamanio()[1] + SEPARADOR
            self.jamcalendar.set_posicion(punto=(x, y))
        if not self.controlalarma:
            self.controlalarma = ControlAlarma()
            x, y = self.jamcalendar.get_posicion()
            w, h = self.jamcalendar.get_tamanio()
            x = x + w / 2 - self.controlalarma.get_tamanio()[0] / 2
            y += h + SEPARADOR * 5
            self.controlalarma.set_posicion(punto=(x, y))
            self.controlalarma.boton_active.connect(
                callback=self.active_alarma)

        self.controles.add(self.jamclock)
        self.controles.add(self.jamcalendar)
        self.controles.add(self.cerrar)
        self.controles.add(self.controlalarma)
        self.load_conf()

        self.estado = True

    def load_conf(self):
        alarma = Abrir()
        alarma = alarma.split(":")
        self.controlalarma.horas = int(alarma[0])
        self.controlalarma.minutos = int(alarma[1])
        self.controlalarma.etiqueta_tiempo.set_text(
            texto="%s:%s" %
            (self.controlalarma.horas, self.controlalarma.minutos))
        self.active_alarma(None)

    def active_alarma(self, button=None):
        horas, minutos = self.controlalarma.get_time()
        if self.controlalarma.active:
            self.jamclock.set_alarma((100, 100), self.sonidoalarma,
                                     self.duracionalarma)
            self.controlalarma.set_active(False)
        elif not self.controlalarma.active:
            self.jamclock.set_alarma((horas, minutos), self.sonidoalarma,
                                     self.duracionalarma)
            self.controlalarma.set_active(True)
            Guardar("%s:%s" % (horas, minutos))

    def run(self):
        self.ventana.blit(self.fondo, (0, 0))
        self.controles.draw(self.ventana)
        pygame.display.update()
        while self.estado:
            self.reloj.tick(35)
            while gtk.events_pending():
                gtk.main_iteration(False)
            Traduce_posiciones(self.VA, self.VH)
            if self.mensaje:
                self.pause_game()
            self.controles.clear(self.ventana, self.fondo)
            self.controles.update()
            self.handle_event()
            pygame.event.clear()
            self.controles.draw(self.ventana)
            self.ventana_real.blit(
                pygame.transform.scale(self.ventana, self.resolucionreal),
                (0, 0))
            pygame.display.update()

    def handle_event(self):
        for event in pygame.event.get(pygame.KEYDOWN):
            tecla = event.key
            if tecla == pygame.K_ESCAPE:
                pygame.event.clear()
                return self.selecciona_mensaje_salir()

    def pause_game(self):
        while self.mensaje.sprites():
            self.reloj.tick(35)
            while gtk.events_pending():
                gtk.main_iteration(False)
            Traduce_posiciones(self.VA, self.VH)
            self.controles.clear(self.ventana, self.fondo)
            self.mensaje.clear(self.ventana, self.fondo)
            self.mensaje.update()
            pygame.event.clear()
            self.controles.draw(self.ventana)
            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, boton):
        self.mensaje = pygame.sprite.OrderedUpdates()

    def selecciona_mensaje_salir(self, button=None):
        self.dialog.set_text(texto="¿ Salir de JAMClock ?")
        self.dialog.connect(funcion_ok=self.salir,
                            funcion_cancel=self.deselecciona_mensaje)
        self.mensaje = self.dialog

    def get_fondo(self, color=(100, 100, 100, 1), tamanio=RESOLUCION):
        superficie = pygame.Surface(tamanio, flags=HWSURFACE)
        superficie.fill(color)
        img = pygame.image.load("firma.png")
        ww, hh = RESOLUCION
        w, h = img.get_size()
        x = ww / 2 - w / 2
        y = hh - h - SEPARADOR
        superficie.blit(img, (x, y))
        return superficie

    def salir(self, boton):
        sys.exit()
Ejemplo n.º 3
0
    def load(self):
        pygame.event.set_blocked([
            JOYAXISMOTION, JOYBALLMOTION, JOYHATMOTION, JOYBUTTONUP,
            JOYBUTTONDOWN
        ])
        pygame.event.set_allowed([
            MOUSEMOTION, MOUSEBUTTONUP, MOUSEBUTTONDOWN, KEYDOWN, KEYUP,
            VIDEORESIZE, VIDEOEXPOSE, USEREVENT, QUIT, ACTIVEEVENT
        ])
        pygame.mouse.set_visible(True)

        a, b, c = JAMG.get_estilo_papel_quemado()
        if not self.reloj: self.reloj = pygame.time.Clock()
        if not self.fondo: self.fondo = self.get_fondo(color=b)

        if not self.dialog:
            self.dialog = JAMDialog()
            self.dialog.set_text(tamanio=24)
            d, e, f = JAMG.get_estilo_celeste()
            self.dialog.set_colors_dialog(base=e, bordes=f)
            self.dialog.set_colors_buttons(colorbas=a, colorbor=b, colorcara=c)
            self.dialog.set_text_buttons(tamanio=24)

        if not pygame.mixer.get_init():
            pygame.mixer.init(44100, -16, 2, 2048)
        pygame.mixer.music.set_volume(1.0)

        if not self.controles: self.controles = pygame.sprite.OrderedUpdates()
        if not self.cerrar:
            self.cerrar = JAMButton("", JAMG.get_icon_exit())
            self.cerrar.set_imagen(origen=JAMG.get_icon_exit(),
                                   tamanio=(20, 20))
            self.cerrar.set_tamanios(tamanio=(0, 0), grosorbor=1, espesor=1)
            self.cerrar.set_colores(colorbas=a, colorbor=b, colorcara=c)
            x = RESOLUCION[0] - self.cerrar.get_tamanio()[0]
            self.cerrar.set_posicion(punto=(x, 0))
            self.cerrar.connect(callback=self.selecciona_mensaje_salir)
        if not self.jamclock:
            self.jamclock = JAMClock()
            self.jamclock.set_tamanios(2)
            self.jamclock.set_colors_base(c, a)
            y = self.cerrar.get_tamanio()[1] + SEPARADOR
            self.jamclock.set_posicion(punto=(SEPARADOR, y))
            self.sonidoalarma = JAMG.get_alarma_reloj1()
            self.duracionalarma = 30
        if not self.jamcalendar:
            self.jamcalendar = JAMCalendar()
            self.jamcalendar.set_gama_colors(colorselect=a,
                                             colorbor=b,
                                             colorcara=c)
            self.jamcalendar.set_text(tamanio=24)
            x = RESOLUCION[0] - self.jamcalendar.get_tamanio()[0] - SEPARADOR
            y = self.cerrar.get_tamanio()[1] + SEPARADOR
            self.jamcalendar.set_posicion(punto=(x, y))
        if not self.controlalarma:
            self.controlalarma = ControlAlarma()
            x, y = self.jamcalendar.get_posicion()
            w, h = self.jamcalendar.get_tamanio()
            x = x + w / 2 - self.controlalarma.get_tamanio()[0] / 2
            y += h + SEPARADOR * 5
            self.controlalarma.set_posicion(punto=(x, y))
            self.controlalarma.boton_active.connect(
                callback=self.active_alarma)

        self.controles.add(self.jamclock)
        self.controles.add(self.jamcalendar)
        self.controles.add(self.cerrar)
        self.controles.add(self.controlalarma)
        self.load_conf()

        self.estado = True
	def run_dialog_game(self, button):
		self.controles.stop()
		from BiblioJAM.JAMDialog import JAMDialog
		dialog= JAMDialog(mensaje="¿Abandonas el Juego?", funcion_ok=self.ok, funcion_cancel=self.cancel)
		fuente, tamanio= JAMG.get_Font_fawn()
		dialog.set_font_from_file(fuente, tamanio= 30)
		dialog.boton_aceptar.set_font_from_file(fuente, tamanio= 30)
		dialog.boton_cancelar.set_font_from_file(fuente, tamanio= 30)
		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)
		self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0))
		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()
		if self.estado== "Intro":
			dialog.clear(self.ventana, self.fondo)
			self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0))
			pygame.display.update()
			return self.run()
		else:
			dialog.clear(self.ventana, self.fondo)
			self.ventana_real.blit(pygame.transform.scale(self.ventana, self.resolucionreal), (0,0))
			pygame.display.update()
			self.controles.play()
Ejemplo n.º 5
0
class Main():
    # Subprograma independiente Crustaceos
    def __init__(self, res):
        self.resolucionreal = res
        # Variables para JAMatrix
        self.ventana = None
        self.name = "CantaBichos"
        self.estado = False

        # Variables del Juego
        self.fondo = None
        self.reloj = None

        # Escalado
        self.ventana_real = None
        #self.resolucionreal= None
        self.VA = None
        self.VH = None

        self.preset()

        self.Bichos = None
        self.mensaje = None
        self.dialog = None

        self.load()

        self.switch()

    def preset(self):
        pygame.display.set_mode((0, 0), pygame.DOUBLEBUF | pygame.FULLSCREEN,
                                0)
        A, B = 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)
        C, D = self.resolucionreal
        self.VA = float(C) / float(A)
        self.VH = float(D) / float(B)

    def load(self):
        if not self.ventana: self.ventana = self.menu_principal.ventana
        pygame.event.set_blocked([
            JOYAXISMOTION, JOYBALLMOTION, JOYHATMOTION, JOYBUTTONUP,
            JOYBUTTONDOWN, KEYUP, VIDEORESIZE, VIDEOEXPOSE, USEREVENT, QUIT,
            ACTIVEEVENT
        ])
        pygame.event.set_allowed(
            [MOUSEMOTION, MOUSEBUTTONUP, MOUSEBUTTONDOWN, KEYDOWN])
        pygame.mouse.set_visible(True)

        if not self.Bichos: self.Bichos = Bichos_Cantores(self)
        if not self.reloj: self.reloj = pygame.time.Clock()
        if not self.fondo: self.fondo = self.get_fondo()

        if not self.dialog:
            self.dialog = JAMDialog()
            self.dialog.set_text(tamanio=40)

        if not pygame.mixer.get_init():
            pygame.mixer.init(44100, -16, 2, 2048)
        pygame.mixer.music.set_volume(1.0)
        self.estado = True

    def switch(self):
        return self.run()

    def run(self):
        self.ventana.blit(self.fondo, (0, 0))
        self.Bichos.draw(self.ventana)
        pygame.display.update()
        while self.estado:
            self.reloj.tick(35)
            while gtk.events_pending():
                gtk.main_iteration(False)
            Traduce_posiciones(self.VA, self.VH)
            if self.mensaje:
                self.pause_game()
            self.Bichos.clear(self.ventana, self.fondo)
            self.Bichos.update()
            self.handle_event()
            pygame.event.clear()
            self.Bichos.draw(self.ventana)
            self.ventana_real.blit(
                pygame.transform.scale(self.ventana, self.resolucionreal),
                (0, 0))
            pygame.display.update()

    def handle_event(self):
        for event in pygame.event.get(pygame.KEYDOWN):
            tecla = event.key
            if tecla == pygame.K_ESCAPE:
                pygame.event.clear()
                return self.selecciona_mensaje_salir()

    def pause_game(self):
        while self.mensaje.sprites():
            self.reloj.tick(35)
            while gtk.events_pending():
                gtk.main_iteration(False)
            Traduce_posiciones(self.VA, self.VH)
            self.Bichos.clear(self.ventana, self.fondo)
            self.mensaje.clear(self.ventana, self.fondo)
            self.mensaje.update()
            self.Bichos.draw(self.ventana)
            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, boton):
        self.mensaje = None
        self.mensaje = pygame.sprite.OrderedUpdates()

    def selecciona_mensaje_salir(self):
        self.dialog.set_text(texto="¿ Salir de CantaBichos ?")
        self.dialog.connect(funcion_ok=self.salir,
                            funcion_cancel=self.deselecciona_mensaje)
        self.mensaje = self.dialog

    def selecciona_mensaje_limite(self):
        self.dialog.set_text(
            texto="No puedes Reproducir más de 8 Sonidos a la vez !!")
        self.dialog.connect(funcion_ok=self.deselecciona_mensaje,
                            funcion_cancel=self.deselecciona_mensaje)
        self.mensaje = self.dialog

    def get_fondo(self, color=(100, 100, 100, 1), tamanio=RESOLUCION):
        superficie = pygame.Surface(tamanio, flags=HWSURFACE)
        superficie.fill(color)
        return superficie

    def salir(self, boton):
        sys.exit()