From 9d57ae40095b2928672b2f4b23a87b8d5927753e Mon Sep 17 00:00:00 2001 From: flavio Date: Wed, 07 Dec 2011 23:10:50 +0000 Subject: CucaraSims Base --- (limited to 'BiblioJAM/JAMGlobals.py') 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 -- cgit v0.9.1