Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/BiblioJAM/JAMGlobals.py
diff options
context:
space:
mode:
Diffstat (limited to 'BiblioJAM/JAMGlobals.py')
-rw-r--r--BiblioJAM/JAMGlobals.py375
1 files changed, 375 insertions, 0 deletions
diff --git a/BiblioJAM/JAMGlobals.py b/BiblioJAM/JAMGlobals.py
new file mode 100644
index 0000000..eda39b0
--- /dev/null
+++ b/BiblioJAM/JAMGlobals.py
@@ -0,0 +1,375 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# BiblioJAM (Versión 2.0) - 16/04/2011 - CeibalJAM! - Uruguay
+# JAMGlobals.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, os, platform
+from pygame.locals import *
+gc.enable()
+
+'''
+if "olpc" in platform.platform():
+ os.environ['SDL_AUDIODRIVER'] = 'alsa'
+
+if not pygame.mixer.get_init():
+ pygame.mixer.pre_init(44100, -16, 2, 2048)
+ pygame.mixer.init(44100, -16, 2, 2048)'''
+
+#pygame.init()
+
+DIRECTORIO_BIBLIOJAM= os.path.dirname(__file__)
+
+# fuentes
+def get_Font_fawn():
+ return (DIRECTORIO_BIBLIOJAM + "/Recursos/Fuentes/fawn.ttf", 43)
+def get_Font_KOMIKND():
+ return (DIRECTORIO_BIBLIOJAM + "/Recursos/Fuentes/KOMIKND.ttf", 43)
+
+# COLORES
+def get_magenta():
+ return (255, 0, 255, 255)
+def get_blanco():
+ return (255,255,255,255)
+def get_negro():
+ return (0,0,0,255)
+def get_gris1():
+ return (128,128,128,255)
+def get_naranja1():
+ return (240,150,0,255)
+def get_celeste1():
+ return (0,240,240,255)
+def get_celeste_pastel_claro1():
+ return (220,255,255,255)
+def get_celeste_cielo1():
+ return (51,121,183,255)
+def get_celeste_cielo2():
+ return (37,115,177,255)
+def get_celeste_cielo3():
+ return (91,152,209,255)
+def get_celeste_cielo4():
+ return (206,229,237,255)
+def get_rojo1():
+ return (255,0,0,255)
+def get_amarillo1():
+ return (255,255,0,255)
+def get_verde1():
+ return (0,183,0,255)
+def get_bordo1():
+ return (178,0,0,255)
+def get_azul1():
+ return (55,93,237,255)
+def get_rojo1():
+ return (255,0,0,255)
+
+# DE BiblioJAM
+def get_jamimagenes():
+ ''' Devuelve las imágenes de BiblioJAM. '''
+ return (DIRECTORIO_BIBLIOJAM + "/Recursos/Iconos/CeibalJAM.png", DIRECTORIO_BIBLIOJAM + "/Recursos/Iconos/bandera_uruguay.png",
+ DIRECTORIO_BIBLIOJAM + "/Recursos/Iconos/licencia.png")
+def get_terron():
+ ''' Devuelve Terron de CeibalJAM! '''
+ return DIRECTORIO_BIBLIOJAM + "/Recursos/Iconos/icono_jam.png"
+
+def get_sound_select():
+ ''' Carga y Devuelve el sonido "select" de BiblioJAM para JAMButton '''
+ #pygame.mixer.init()
+ return pygame.mixer.Sound(DIRECTORIO_BIBLIOJAM + "/Recursos/Sonidos/select.ogg")
+def get_sound_clock_tick1():
+ ''' Carga y Devuelve el sonido "clock1" de BiblioJAM. '''
+ #pygame.mixer.init()
+ return pygame.mixer.Sound(DIRECTORIO_BIBLIOJAM + "/Recursos/Sonidos/clock_tick1.ogg")
+def get_alarma_reloj1():
+ ''' Carga y Devuelve el sonido "alarma-reloj1" de BiblioJAM. '''
+ #pygame.mixer.init()
+ return pygame.mixer.Sound(DIRECTORIO_BIBLIOJAM + "/Recursos/Sonidos/alarma-reloj1.ogg")
+def get_alarma_reloj2():
+ ''' Carga y Devuelve el sonido "alarma-reloj2" de BiblioJAM. '''
+ #pygame.mixer.init()
+ return pygame.mixer.Sound(DIRECTORIO_BIBLIOJAM + "/Recursos/Sonidos/alarma-reloj2.ogg")
+
+# ICONOS
+def get_icon_back():
+ ''' Devuelve las imágenes para botones atras, delante, play y salir. '''
+ atras= DIRECTORIO_BIBLIOJAM + "/Recursos/Iconos/anterior.png"
+ return atras
+def get_icon_next():
+ ''' Devuelve las imágenes para botones atras, delante, play y salir. '''
+ delante= DIRECTORIO_BIBLIOJAM + "/Recursos/Iconos/siguiente.png"
+ return delante
+def get_icon_play():
+ ''' Devuelve las imágenes para botones atras, delante, play y salir. '''
+ play= DIRECTORIO_BIBLIOJAM + "/Recursos/Iconos/play.png"
+ return play
+def get_icon_exit():
+ ''' Devuelve las imágenes para botones atras, delante, play y salir. '''
+ salir= DIRECTORIO_BIBLIOJAM + "/Recursos/Iconos/cerrar.png"
+ return salir
+#def get_icon_stop():
+# ''' Devuelve las imágenes para botones atras, delante, play y salir. '''
+# stop= DIRECTORIO_BIBLIOJAM + "/Recursos/Iconos/??.png"
+# return stop
+def get_icon_ok():
+ ''' Devuelve las imágenes para botones ok y cancel. '''
+ ok= DIRECTORIO_BIBLIOJAM + "/Recursos/Iconos/tick_ok.png"
+ return ok
+def get_icon_cancel():
+ ''' Devuelve las imágenes para botones ok y cancel. '''
+ cancel= DIRECTORIO_BIBLIOJAM + "/Recursos/Iconos/tick_cancel.png"
+ return cancel
+
+# IMAGENES Y SUPERFICIES
+def get_Rectangulo(color, tamanio):
+ ''' Devuelve una superficie según color y tamaño. '''
+ superficie = pygame.Surface( tamanio, flags=HWSURFACE )
+ superficie.fill(color)
+ return superficie
+def get_Rectangulo_Transparente(tamanio):
+ ''' Devuelve una superficie según color y tamaño. '''
+ superficie = pygame.Surface( tamanio, flags=HWSURFACE )
+ superficie.fill(get_magenta())
+ superficie.set_colorkey(get_magenta(), pygame.RLEACCEL)
+ return superficie
+def get_my_surface_whit_border(superficie, color, grosor):
+ ''' Pinta un Borde Rectangular sobre una superficie y devuelve el resultado. '''
+ pygame.draw.rect(superficie, color, superficie.get_rect(), grosor)
+ return superficie
+def get_Elipse(color, tamanio):
+ ''' Devuelve una Elipse según color y tamaño. '''
+ superficie = pygame.Surface( tamanio, flags=HWSURFACE )
+ superficie.fill(get_magenta())
+ superficie.set_colorkey(get_magenta(), pygame.RLEACCEL)
+ rectangulo = (0, 0, tamanio[0], tamanio[1])
+ pygame.draw.ellipse(superficie, color, rectangulo, 0)
+ return superficie
+def get_my_surface_whit_elipse_border(superficie, color, grosor):
+ ''' Pinta un Borde Eliptico sobre una superficie y devuelve el resultado. '''
+ try:
+ rectangulo= (0,0,superficie.get_size()[0],superficie.get_size()[1])
+ pygame.draw.ellipse(superficie, color, rectangulo, int(grosor))
+ return superficie
+ except:
+ print rectangulo, color, grosor
+def pegar_imagenes_centradas(superficie1, superficie2):
+ ''' Pega superficie1 sobre superficie2. '''
+ w,h= superficie2.get_size()
+ w1,h1= superficie1.get_size()
+ superficie2.blit(superficie1, (w/2-w1/2, h/2-h1/2))
+ return superficie2
+def pegar_imagenes_alineado_izquierda(superficie1, superficie2):
+ ''' Pega superficie1 sobre superficie2. '''
+ w,h= superficie2.get_size()
+ w1,h1= superficie1.get_size()
+ superficie2.blit(superficie1, (0, h/2-h1/2))
+ return superficie2
+def pegar_imagenes_alineado_derecha(superficie1, superficie2):
+ ''' Pega superficie1 sobre superficie2. '''
+ w,h= superficie2.get_size()
+ w1,h1= superficie1.get_size()
+ superficie2.blit(superficie1, (w-w1, h/2-h1/2))
+ return superficie2
+
+def get_grilla(superficie, columnas, filas): # Utilizado por JAMBoard
+ ''' Devuelve una lista de posiciones en una superficie, según columnas y filas. '''
+ ancho, alto= superficie.get_size()
+ cuadros= ancho/columnas
+ posiciones= []
+ for f in range(0, filas):
+ for x in range(0, columnas):
+ posiciones.append( (cuadros*x, cuadros*f) )
+ return posiciones
+
+def get_matriz_rect(lado, colum, filas):
+ ''' Devuelve una lista de columnas:
+ que contiene cuadrados iguales. '''
+ x,y= (0,0)
+ columnas= []
+ for col in range(colum):
+ # para todas las columnas
+
+ fila= []
+ for rect in range(filas):
+ # para todas las filas
+ rectangulo= pygame.rect.Rect(x,y,lado,lado)
+ fila.append(rectangulo)
+ y+= lado
+
+ columnas.append(fila)
+ x+= lado
+ y= 0
+
+ return columnas
+
+def get_cuadricula(superficie, columnas, filas): # Utilizado por JAMClock
+ ''' Devuelve una lista de rectángulos en una superficie, según columnas y filas. '''
+ ancho, alto= superficie.get_size()
+ cuadros= ancho/columnas
+ rectangulos= []
+ for f in range(0, filas):
+ for x in range(0, columnas):
+ rectangulos.append( (cuadros*x, cuadros*f, ancho/columnas, alto/filas) )
+ return rectangulos
+
+
+# Devuelve las diferentes Simbologías para sprites necesarios en JAMBoard.
+def get_letras_up():
+ return ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'Ñ', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
+def get_tildes_up():
+ return ['Á', 'É', 'Í', 'Ó', 'Ú']
+def get_letras_down():
+ return ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
+def get_tildes_down():
+ return ['á', 'é', 'í', 'ó', 'ú']
+def get_numeros():
+ return ['1','2','3','4','5','6','7','8','9','0']
+def get_simbols():
+ return ['^', '_', '~', '|', '\\', '#', '$', '€', '&', '@', '%', 'ª', 'º', '·', '¡', '!', '¿', '?', '\'', '\"', '(', ')', '{', '}', '[', ']']
+def get_otros():
+ return [',', '.', ':', ';', '<', '>']
+def get_matematicas():
+ return ['*', '+', '-', '/', '=']
+def get_especiales():
+ return ['´', "Espacio", "Borrar", "Enter"]
+
+# Seteos automáticos para JAMButton.
+def get_default_jambutton_values():
+ ''' Devuelve los valores default para JAMButton. '''
+ COLORCARA = (242,242,242,255)
+ COLORBAS= (128,128,128,255)
+ COLORBOR= (179,179,179,255)
+ GROSORBOR= 7
+ DETALLE= 2
+ ESPESOR= 8
+ return COLORCARA, COLORBAS, COLORBOR, GROSORBOR, DETALLE, ESPESOR
+
+# Estilos de colores para JAMBoard.
+def get_estilo_naranja():
+ return (200,100,0,255), (240,150,0,255), (255,220,0,255)
+def get_estilo_gris():
+ return (128,128,128,255), (179,179,179,255), (242,242,242,255)
+def get_estilo_celeste():
+ return (0,128,128,255),(0,180,180,255),(0,240,240,255)
+def get_estilo_papel_quemado():
+ return (148,107,54), (197,155,101), (231,207,178)
+
+# CALENDARIO
+def get_calendar(mes, anio):
+ ''' Devuelve una lista que representa los renglones para un calendario según mes y año, (anio y mes deben ser enteros). '''
+ import calendar
+ calendario= calendar.Calendar()
+ semanas= calendario.monthdayscalendar(anio, mes)
+ toodoelmes= []
+ for i in (semanas):
+ todalasemana=[]
+ for fecha in i:
+ if int(fecha)!=0:
+ todalasemana.append(fecha)
+ toodoelmes.append(todalasemana)
+ #toodoelmes.insert(0, ["%s de %s" % (get_abrevia_mes(mes), anio)])
+ toodoelmes.insert(0, "%s de %s" % (get_mes(mes), anio))
+ toodoelmes.insert(1,["lu", "ma", "mie", "jue", "vie", "sa", "do"])
+ return toodoelmes
+
+def get_abrevia_mes(numero):
+ ''' Recibe un entero de 1 a 12 y devuelve la abreviación del mes correspondiente.'''
+ numero= int(numero)
+ if numero== 1: return "ene"
+ if numero== 2: return "feb"
+ if numero== 3: return "mar"
+ if numero== 4: return "abr"
+ if numero== 5: return "may"
+ if numero== 6: return "jun"
+ if numero== 7: return "jul"
+ if numero== 8: return "ago"
+ if numero== 9: return "sep"
+ if numero== 10: return "oct"
+ if numero== 11: return "nov"
+ if numero== 12: return "dic"
+
+def get_mes(numero):
+ ''' Recibe un entero de 1 a 12 y devuelve el nombre del mes correspondiente.'''
+ numero= int(numero)
+ if numero== 1: return "Enero"
+ if numero== 2: return "Febrero"
+ if numero== 3: return "Marzo"
+ if numero== 4: return "Abril"
+ if numero== 5: return "Mayo"
+ if numero== 6: return "Junio"
+ if numero== 7: return "Julio"
+ if numero== 8: return "Agosto"
+ if numero== 9: return "Setiembre"
+ if numero== 10: return "Octubre"
+ if numero== 11: return "Noviembre"
+ if numero== 12: return "Diciembre"
+
+def get_dia(numero):
+ ''' Recibe un entero de 1 a 7 y devuelve el nombre del día correspondiente.'''
+ numero= int(numero)
+ if numero== 1: return "Lunes"
+ if numero== 2: return "Martes"
+ if numero== 3: return "Miercoles"
+ if numero== 4: return "Jueves"
+ if numero== 5: return "Viernes"
+ if numero== 6: return "Sabado"
+ if numero== 7: return "Domingo"
+
+# Efectos
+def get_fire():
+ ''' Imagenes de un fuego. '''
+ imagenes_cargadas= []
+ imagenes= os.listdir(DIRECTORIO_BIBLIOJAM + "/Recursos/Fuego/")
+ for imagen in imagenes:
+ im= pygame.image.load(DIRECTORIO_BIBLIOJAM + "/Recursos/Fuego/" + imagen)
+ imagenes_cargadas.append(im)
+ return imagenes_cargadas
+
+def get_nube():
+ ''' Imagenes de nubes. '''
+ imagen= pygame.image.load(DIRECTORIO_BIBLIOJAM + "/Recursos/Nubes/nube1.png")
+ #pygame.transform.scale(pygame.image.load(DIRECTORIO_BIBLIOJAM + "/Recursos/Nubes/001.png"), (125,125))
+ return imagen
+
+def get_sound_lluvia():
+ ''' Carga y Devuelve el sonido de la lluvia para JAMNubes '''
+ #pygame.mixer.init()
+ return pygame.mixer.Sound(DIRECTORIO_BIBLIOJAM + "/Recursos/Sonidos/lluvia.ogg")
+
+'''
+def get_libro():
+ Libreta de lectura.
+ return DIRECTORIO_BIBLIOJAM + "/Recursos/Iconos/libreta.png"
+
+ def get_hoja():
+ Devuelve la imagen para una hoja vacía.
+ imagen= pygame.image.load(VG.get_libro())
+ ancho, alto= imagen.get_size()
+ fondo= VG.get_Rectangulo(VG.get_blanco(), (ancho, alto*19))
+
+ x, y= (0,0)
+ for n in range(19):
+ fondo.blit(imagen, (x, y))
+ y+=alto
+ #fondo= pygame.transform.scale(fondo,(296,420))
+ return fondo
+'''
+
+def get_hoja(escala):
+ ''' Devuelve la imagen para una hoja vacía y un valor "margen" para el texto. '''
+ imagen= pygame.image.load(DIRECTORIO_BIBLIOJAM + "/Recursos/Iconos/hoja.png")
+ if type(escala)== tuple and type(escala[0])== int and type(escala[1])== int:
+ imagen= pygame.transform.scale(imagen, escala)
+ w,h= imagen.get_size()
+ margen= w/10
+ return imagen, margen
+
+def get_Sombra(tamanio, color, opacidad):
+ x= pygame.sprite.OrderedUpdates()
+ sombra= pygame.sprite.Sprite()
+ sombra.image= get_Rectangulo(color, tamanio)
+ sombra.image.set_alpha(opacidad, SRCALPHA)
+ sombra.rect= sombra.image.get_rect()
+ x.add(sombra)
+ return x