BiblioJAM‎ > ‎

JAMatrix

Una clase que dibuja un efecto matrix con terrones mientras se carga tu juego. No es un objeto pygame. Utiliza JAMLabel

VERSION 2 (31/05/2011)

Para poder utilizar este control, debes:
  • Copiar la carpeta BiblioJAM dentro del directorio de tu juego o actividad.
  • Luego importar el paquete mediante:       import BiblioJAM
  • Luego, para crear JAMatrix, debes importar su clase mediante:         from BiblioJAM.JAMatrix import JAMatrix

Para usar JAMatrix, tu juego debe tener obligatoriamente:

        Propiedades o atributos:
    • resolucion= (800,600)           # La resolución de la ventana pygame de tu juego.
    • ventana= None                      # La ventana pygame de tu juego.
    • name= "Ejemplo JAMatrix"   # El nombre de tu juego.
    • estado = False                       # El estado de tu juego (False al momento de ejecutar JAMatrix).
        Funciones:
    • def load (self):                       # Donde creas y cargas todos los objetos iniciales de tu juego(sprites, sonidos, etc. Todo), poniendo como sentencia final en esa función, el cambio de estado de tu juego, por ejemplo: estado = True
    • def handle_event(self):         # Para capturar eventos mientras se ejecuta JAMatrix para detenerlo (opcional).

Ejemplo práctico de funcionamiento:

class Ejemplo(object):
    def __init__(self):


        # Variables obligatorias en tu juego para poder utilizar JAMatrix.
        self.resolucion = (800,600)
        self.ventana = None
        self.name= "Ejemplo JAMatrix"
        self.estado = False

        # Variables del juego
        . . . . . . . . . . . . . . . . . # Lo que sea

        self.preset() # crea la ventana principal

        # usando JAMatrix para cargar el juego
        self.matrix= JAMatrix(self, self.ventana, self.resolucion)
        self.matrix.set_callback_event(self.handle_event) # si quieres detectar eventos durante JAMatrix para cortar la carga.
        self.matrix.carga_game() # lanza JAMatrix
       
        # Comienza a ejecutar tu juego
        self.estado= "menu_0"
        self.run_menu_0()

    def preset(self):
        ''' Iniciando pygame y creando una ventana. '''
        pygame.init()
        pygame.display.set_mode(self.resolucion , 0, 0)
        self.ventana = pygame.display.get_surface()


Método de uso:
  • En tu juego declaras las variables obligatorias para JAMatrix (ver más arriba).
  • Inicia pygame y crea la ventana (ver función preset arriba).
  • Creas la instancia de JAMatrix pasándole como parámetros: (la instancia de tu juego, la ventana donde debe dibujarse y la resolución de la ventana), mediante: self.matrix= JAMatrix(self, self.ventana, self.resolucion)
  • Setea una función para detectar eventos durante la ejecución de JAMatrix para por ejemplo cortar la carga del juego (opcional), mediante: self.matrix.set_callback_event(self.handle_event)
  • y finalmente ejecuta JAMatrix mediante: self.matrix.carga_game()


¿Que hace JAMatrix cuando se ejecuta?:

Ejecuta en un thread la función load de tu juego y se ejecuta a si mismo en el hilo principal hasta que cambie el valor de la variable estado de tu juego. Por eso es necesario que tu juego tenga la función load donde se carguen todos los objetos y que la última sentencia cambie el valor de la variable estado de tu juego a algo distinto a False, en ese momento, JAMatrix dejará de ejecutarse y tu juego seguirá ejecutando el código que se encuentre inmediatamente después de la ejecución de JAMatrix.



Puedes cambiar la imagen para el efecto Matrix mediante:
       
JAMatrix.set_imagen_matrix(imagen)
        pasa none para desactivar

Puedes conectar una función para detectar eventos durante la carga mediante:
        
JAMatrix.set_callback_event(callback)

Puedes setear la latencia de generación de nuevos elementos cayendo en el efecto Matrix mediante:
        
JAMatrix.set_latencia(latencia)


Nota:
Puedes ejecutar: python JAMatrix.py para ver un ejemplo.
Comments