## ######################################################################
##                              PROG_TIC
## ######################################################################
## Librería de utililerías para juegos 2D (funciona sobre pygame).
## Pensado para hacer juegos en la asignatura de TIC I en 1º de Bachillerato
## ######################################################################
##
## Clases que incluye:
##  Graficador: Sirve para crear gráficos en BMP a dos colores a partir de
##              un array de enteros (cada entero en binario representa una
##				línea de bits). Se puede añadir píxeles del color que se quiera.

##  Ventana: 	Clase que muestra una ventana con su título y ejecuta el método
## 				run de una clase que le ha de pasar al método. Es la base para 
##              crear juego, pues al redefinir el método run, Ventana ejecuta
##				este cada "frame" del juego. 

## Métodos: 
## cargaGrafico(fichero): dado un fichero en bmp, devuelve un objeto "grafico"
##                      propio de la librería pygame. Dicho gráfico se reescala
##                      al tamaño dado en la librería TAM_GRAF.

## Variables:
## TAM_GRAF: factor de escala de los gráficos.
## TAM_X: anchura en píxeles de la ventana. Por defecto 480.
## TAM_Y: altura en píxeles de la ventana. Por defecto 320.

## Define los colores: AZUL, ROJO, VERDE, AMARILLO, BLANCO, NEGRO, GRIS, GRIS_CLARO
## Inicializar la librería pygame.
## define una variable "pantalla" con el manejardor
## gráfico para imprimir en este los diferentes gráficos.

## Ejemplos de usos.

####  GRAFICADOR  ####
## Crea gráficos de 10x10 píxeles.
## Crear una imagen bmp con la imagen de un balón de baloncesto.
## El array "decimals" contiene los 10 valores de cada fila del gráfico.
## La interpretación de este valor en binario representa las celdas que tienen
## píxel y la que no.
## Mediante el métood setColorTintaEn se puede colorear un determinado píxel situado
## en una determinadas coordenadas.

import prog_tic
decimals = [120, 422, 274, 659, 915, 727, 659, 274, 422, 120]
NEGRO=[0, 0, 0]
NARANJA=[242, 164, 36]
GRIS=[128,128,128]
graf1=prog_tic.Graficador(decimals,"balón.bmp")
graf1.setColorFondo(NEGRO)
graf1.setColorTinta(NARANJA)
graf1.setColorTintaEn(7,0,GRIS)
graf1.setColorTintaEn(8,0,GRIS)
graf1.setColorTintaEn(9,0,GRIS)
graf1.setColorTintaEn(9,1,GRIS)
graf1.setColorTintaEn(9,2,GRIS)
graf1.creaBMP()

### VENTANA ###
## Clase que se utiliza para crear una ventana de un juego. Esta clase 
## trabaja sobre la librería pygame y la idea es la dar unos valores
## predeterminados para limpiar un poco el código a la hora de hacer juegos.
## Se ha de crear una clase y definir un método run(self). Dicho método contendrá
## un "instante" del juego, y será llamado constantemente. La función delay 
## marca la frecuencia.

import pygame
import prog_tic

######################################################################
########                 CLASE PRINCIPAL 
######################################################################

class MiPrograma:
    # Inicializaciones.
    def __init__(self):
        prog_tic.pantalla.fill((0,0,0))## Pinta el fondo de negro.
        self.nombreGraf=prog_tic.cargaGrafico("nombreFich.bmp")
                    
    # Diseño del frame general del juego.
    def run(self):
        ###    AQUÍ ESCRIBO MI CÓDIGO     ###
        prog_tic.pantalla.blit(self.nombreGraf,(240,160))
        ### - - -  FIN DE MI CÓDIGO - - - ###
        pygame.display.flip()
        pygame.time.delay(150)

######################################################################
########         INSTRUCCIONES INICIALES
######################################################################

ventana=prog_tic.Ventana("El Gusano Comilón")
ventana.execute(MiPrograma())
pygame.quit()


