Exemple #1
0
    def __init__(self, pilas, x=0, y=0, opciones=[], fuente=None,
             color_normal=colores.gris, color_resaltado=colores.blanco):
        Actor.__init__(self, pilas, x=x, y=y)
        self.opciones_como_actores = []
        self.iconos_de_opciones = []
        self.demora_al_responder = 0
        self.imagen = "invisible.png"

        self._verificar_opciones(opciones)
        self.crear_texto_de_las_opciones(opciones, fuente, color_normal, color_resaltado)
        self.opciones = opciones
        self.seleccionar_primer_opcion()
        self.opcion_actual = 0
        # contador para evitar la repeticion de teclas
        self.activar()

        # Mapeamos unas teclas para mover el menu
        teclas = {simbolos.IZQUIERDA: 'izquierda',
                  simbolos.DERECHA: 'derecha',
                  simbolos.ARRIBA: 'arriba',
                  simbolos.ABAJO: 'abajo',
                  simbolos.SELECCION: 'boton'}

        # Creamos un control personalizado
        self.control_menu = pilas.controles.Control(pilas.escena_actual(), teclas)
Exemple #2
0
    def __init__(self,
                 pilas,
                 x=0,
                 y=0,
                 opciones=[],
                 rutaImagenes=None,
                 fuente=None,
                 color_normal=colores.gris,
                 color_resaltado=colores.blanco):
        Actor.__init__(self, pilas, x=x, y=y)
        self.opciones_como_actores = []
        self.iconos_de_opciones = []
        self.imagen = "invisible.png"
        self.rutaImagenes = rutaImagenes
        self.escalaImagenes = 0.05
        self.decir = tts

        # sonidos:
        self.sonido_abrir = Sonido("audio/menu_abrir.ogg")
        self.sonido_mover = Sonido("audio/menu_opcion.ogg")
        self.sonido_activar = Sonido("audio/menu_enter.ogg")
        self.sonido_activar.volumen = 0.3

        self._verificar_opciones(opciones)
        self.crear_opciones(opciones, fuente, color_normal, color_resaltado)
        self.opciones = opciones
        self.seleccionar_primer_opcion()
        self.opcion_actual = 0
        self.activar()
Exemple #3
0
    def __init__(self,
                 pilas,
                 x=0,
                 y=0,
                 opciones=[],
                 fuente=None,
                 color_normal=colores.gris,
                 color_resaltado=colores.blanco):
        Actor.__init__(self, pilas, x=x, y=y)
        self.opciones_como_actores = []
        self.iconos_de_opciones = []
        self.demora_al_responder = 0
        self.imagen = "invisible.png"

        self._verificar_opciones(opciones)
        self.crear_texto_de_las_opciones(opciones, fuente, color_normal,
                                         color_resaltado)
        self.opciones = opciones
        self.seleccionar_primer_opcion()
        self.opcion_actual = 0
        # contador para evitar la repeticion de teclas
        self.activar()

        # Mapeamos unas teclas para mover el menu
        teclas = {
            simbolos.IZQUIERDA: 'izquierda',
            simbolos.DERECHA: 'derecha',
            simbolos.ARRIBA: 'arriba',
            simbolos.ABAJO: 'abajo',
            simbolos.SELECCION: 'boton'
        }

        # Creamos un control personalizado
        self.control_menu = pilas.controles.Control(pilas.escena_actual(),
                                                    teclas)
Exemple #4
0
    def __init__(self,
                 pilas,
                 x=0,
                 y=0,
                 opciones=[],
                 fuente=None,
                 color_normal=colores.gris,
                 color_resaltado=colores.blanco,
                 imagenFondo=None,
                 distancia=50,
                 escala=1):
        Actor.__init__(self, pilas, x=x, y=y)
        self.opciones_como_actores = []
        self.iconos_de_opciones = []
        self.imagen = "invisible.png"
        self._verificar_opciones(opciones)
        self.crear_texto_de_las_opciones(opciones,
                                         fuente,
                                         color_normal,
                                         color_resaltado,
                                         imagenFondo=imagenFondo,
                                         distancia=distancia,
                                         escala=escala)
        self.opciones = opciones
        self.seleccionar_primer_opcion()
        self.opcion_actual = 0

        # eventos:
        self.seleccionaOpcion = pilas.evento.Evento("selecciona_opcion")
        self.activaOpcion = pilas.evento.Evento("activa_opcion")
        self.activar()
Exemple #5
0
    def __init__(self, pilas, x=0, y=0, progreso=100, ancho=200, alto=30,
                 color_relleno=colores.amarillo, con_sombra=True,
                 con_brillo=True):
        """ Constructor de la barra de Energia.

        :param x: Posición horizontal de la barra.
        :type x: int
        :param y: Posición vertical de la barra.
        :type y: int
        :param progreso: Valor actual de la barra de enegia. Debe tener un valor entre 0 o 100.
        :type progreso: int
        :param ancho: Ancho de la barra de energia en pixeles.
        :type ancho: int
        :param alto: Alto de la barra de energia en pixeles.
        :type alto: int
        :param color_relleno: Color de la barra de Energia.
        :type color_relleno: pilas.colores.Color
        :param con_sombra: Permite mostrar una pequeña sombra en la barra de Energia.
        :type con_sombra: boolean
        :param con_brillo: Permite mostrar un pequeño brillo en la barra de Energia.
        :type con_brillo: boolean

        """
        Actor.__init__(self, pilas, x=x, y=y)
        self.area_ancho = ancho
        self.area_alto = alto
        self._progreso = progreso
        self.progreso_anterior = progreso
        self.imagen = pilas.imagenes.cargar_superficie(self.area_ancho, self.area_alto)
        self.color_relleno = color_relleno
        self.con_sombra = con_sombra
        self.con_brillo = con_brillo
        self.pintar_imagen()
        self.fijo = True
        self.miniatura = None
Exemple #6
0
    def __init__(self, pilas, texto="Sin texto", magnitud=20, vertical=False,
                 fuente=None, fijo=True, ancho=0, x=0, y=0):
        """Inicializa el actor.

        :param texto: Texto a mostrar.
        :param magnitud: Tamaño del texto.
        :param vertical: Si el texto será vertical u horizontal,
                         como True o False.
        :param fuente: Nombre de la fuente a utilizar.
        :param fijo: Determina si el texto se queda fijo aunque se mueva
                     la camara. Por defecto está fijo.
        :param ancho: El limite horizontal en pixeles para la cadena, el texto
                      se mostrara en varias lineas si no cabe en este límite.
        """
        self._ancho = ancho
        self.__magnitud = magnitud
        self.__vertical = vertical
        self.__fuente = fuente
        self.__color = blanco
        Actor.__init__(self, pilas)
        self.x = x
        self.y = y
        self.centro = ("centro", "centro")
        self.fijo = fijo
        self.texto = texto
Exemple #7
0
    def __init__(self,
                 pilas,
                 x=0,
                 y=0,
                 z=0,
                 color='blanco',
                 columna=0,
                 fila=0,
                 estiloDeCelda="celda"):
        Actor.__init__(self, pilas, x=x, y=y)
        self.z = z
        self.color = color
        self.ficha = None
        self.columna = columna
        self.fila = fila
        self.seleccionado = False
        self.estiloDeCelda = estiloDeCelda
        self.escala = 2.3
        self._efecto = None

        if color == 'blanco':
            self.normal = "imagenes/" + estiloDeCelda + "/blanco.png"
        else:
            self.normal = "imagenes/" + estiloDeCelda + "/negro.png"

        self.imagen = self.normal
Exemple #8
0
    def __init__(self,
                 pilas,
                 texto="Sin texto",
                 magnitud=20,
                 vertical=False,
                 fuente=None,
                 fijo=True,
                 ancho=0,
                 x=0,
                 y=0):
        """Inicializa el actor.

        :param texto: Texto a mostrar.
        :param magnitud: Tamaño del texto.
        :param vertical: Si el texto será vertical u horizontal,
                         como True o False.
        :param fuente: Nombre de la fuente a utilizar.
        :param fijo: Determina si el texto se queda fijo aunque se mueva
                     la camara. Por defecto está fijo.
        :param ancho: El limite horizontal en pixeles para la cadena, el texto
                      se mostrara en varias lineas si no cabe en este límite.
        """
        self._ancho = ancho
        Actor.__init__(self, pilas)
        self.__magnitud = magnitud
        self.__vertical = vertical
        self.__fuente = fuente
        self.__color = blanco
        self.x = x
        self.y = y
        self.centro = ("centro", "centro")
        self.fijo = fijo
        self.texto = texto
Exemple #9
0
    def __init__(self, pilas):

        self._celda = None
        self.tablero = None
        self.comportamiento = None
        self.nombre = ''
        self.color = ''
        Actor.__init__(self, pilas, x=0, y=0, imagen='invisible.png')
    def __init__(self,
                 pilas,
                 texto="",
                 x=0,
                 y=0,
                 dialogo=None,
                 avance_con_clicks=True,
                 ancho_globo=0,
                 alto_globo=0,
                 objetivo=None,
                 tiempo=3,
                 autoeliminar=True):
        self.dialogo = dialogo
        Actor.__init__(self, pilas, x=x, y=y)
        self.imagen = 'invisible.png'
        self.z = -1
        self.objetivo = objetivo

        ancho, alto = pilas.utils.obtener_area_de_texto(texto)

        # Podemos pasar el ancho del globo ya que si contiene opciones
        # cuyo texto es más largo que la cabecera del globo, no queda bien.
        if ancho_globo == 0:
            ancho = int((ancho + 12) - (ancho % 12))
        else:
            if ancho_globo > ancho:
                ancho = ancho_globo
            else:
                ancho = int((ancho + 12) - (ancho % 12))

        # Lo mismo para el alto
        if alto_globo == 0:
            alto = int((alto + 12) - alto % 12)
        else:
            alto = alto + alto_globo

        self.imagen = pilas.imagenes.cargar_superficie(ancho + 36,
                                                       alto + 24 + 35)

        self._pintar_globo(ancho, alto)
        self.imagen.texto(texto, 17, 20)
        self.centro = ("derecha", "abajo")
        self.escala = 0.1
        self.escala = [1], 0.2

        self.ancho_globo = ancho
        self.alto_globo = alto

        if avance_con_clicks:
            self.pilas.escena_actual().click_de_mouse.conectar(
                self.cuando_quieren_avanzar)

        if autoeliminar:
            pilas.escena_actual().tareas.una_vez(tiempo, self.eliminar)

        self.x = x
        self.y = y
Exemple #11
0
    def __init__(self, pilas, *k, **kv):
        """ Constructor del Actor.

        :param grilla: Grilla de imagenes obtenida mediante pilas.imagenes.cargar_grilla()
        :type grilla: `Grilla`
        :param x: Posición horizontal del Actor.
        :type x: int
        :param y: Posición vertical del Actor.
        :type y: int
        """
        Actor.__init__(self, pilas, *k, **kv)
Exemple #12
0
    def __init__(self, pilas, *k, **kv):
        """ Constructor del Actor.

        :param grilla: Grilla de imagenes obtenida mediante pilas.imagenes.cargar_grilla()
        :type grilla: `Grilla`
        :param x: Posición horizontal del Actor.
        :type x: int
        :param y: Posición vertical del Actor.
        :type y: int
        """
        Actor.__init__(self, pilas, *k, **kv)
    def __init__(self, pilas, x, y, min, max, etiqueta, valor_inicial=-21):
        self.min = min
        self.max = max
        self.rango = max - min
        self.texto_etiqueta = etiqueta
        Actor.__init__(self, pilas, x=x, y=y)
        self.imagen = pilas.imagenes.cargar_superficie(100, ALTURA)
        self.progreso = valor_inicial

        self.progreso_sobre_100 = ((valor_inicial - min) / float(self.rango)) * 100
        self.actualizar_imagen()
        self.actualizar_texto()
        self.figura_de_colision = None
    def __init__(self, pilas, grilla, x=0, y=0):
        """ Constructor del Actor.

        :param grilla: Grilla de imagenes obtenida mediante pilas.imagenes.cargar_grilla()
        :type grilla: `Grilla`
        :param x: Posición horizontal del Actor.
        :type x: int
        :param y: Posición vertical del Actor.
        :type y: int
        """
        Actor.__init__(self, pilas, x, y)
        self.imagen = copy.copy(grilla)
        self.definir_cuadro(0)
Exemple #15
0
    def __init__(self, pilas, x, y, min, max, etiqueta, valor_inicial=-21):
        self.min = min
        self.max = max
        self.rango = max - min
        self.texto_etiqueta = etiqueta
        Actor.__init__(self, pilas, x=x, y=y)
        self.imagen = pilas.imagenes.cargar_superficie(100, ALTURA)
        self.progreso = valor_inicial

        self.progreso_sobre_100 = (
            (valor_inicial - min) / float(self.rango)) * 100
        self.actualizar_imagen()
        self.actualizar_texto()
        self.figura_de_colision = None
Exemple #16
0
 def __init__(self, pilas, tablero, tts, demora=30):
     Actor.__init__(self, pilas, x=tablero.x, y=tablero.y)
     self.imagen = "imagenes/cabezal.png"
     self.tablero = tablero
     self.columna=0
     self.fila=0
     self.control = pilas.escena_actual().control
     self.decir=tts
     self.activo = True
     # sonidos:
     self.sonido_mover = Sonido('audio/mover.ogg')
     self.sonido_limite = Sonido('audio/limite.ogg')
     self.x, self.y = self.tablero.posicion_de_celda(self.columna, self.fila)
     self.escala = 2.3
    def __init__(self, pilas, x=0, y=0, ancho=None, alto=None):
        """Inicializa el actor Pizarra.

        :param x: Posición horizontal inicial.
        :param y: Posición horizontal inicial.
        :param ancho: El tamaño horizontal en pixels, si no se especifica será el tamaño de la ventana.
        :param alto: El tamaño vertical en pixels, si no se especifica será el tamaño de la ventana.
        """
        Actor.__init__(self, pilas, x=x, y=y)

        # Si no define area de la pizarra toma el tamano de la ventana.
        if not ancho or not alto:
            ancho, alto = self.pilas.obtener_area()

        self.imagen = pilas.imagenes.cargar_superficie(ancho, alto)
    def __init__(self, pilas, x=0, y=0, ancho=None, alto=None):
        """Inicializa el actor Pizarra.

        :param x: Posición horizontal inicial.
        :param y: Posición horizontal inicial.
        :param ancho: El tamaño horizontal en pixels, si no se especifica será el tamaño de la ventana.
        :param alto: El tamaño vertical en pixels, si no se especifica será el tamaño de la ventana.
        """
        Actor.__init__(self, pilas, x=x, y=y)

        # Si no define area de la pizarra toma el tamano de la ventana.
        if not ancho or not alto:
            ancho, alto = self.pilas.obtener_area()

        self.imagen = pilas.imagenes.cargar_superficie(ancho, alto)
    def __init__(self, pilas, emisor, x, y, dx, dy, imagen, vida):
        Actor.__init__(self, pilas, x, y)
        self.emisor = emisor
        self.imagen = imagen
        self.dx = dx
        self.dy = dy

        self.vida = vida * 1000 # expresada en segundos
        self.contador = 0

        self.escala_fin = self.escala
        self.transparencia_fin = self.transparencia
        self.rotacion_fin = self.rotacion
        self.aceleracion_x = 0
        self.aceleracion_y = 0
        self.figura_de_colision = None
Exemple #20
0
    def __init__(self, pilas, emisor, x, y, dx, dy, imagen, vida):
        Actor.__init__(self, pilas, x, y)
        self.emisor = emisor
        self.imagen = imagen
        self.dx = dx
        self.dy = dy

        self.vida = vida * 1000  # expresada en segundos
        self.contador = 0

        self.escala_fin = self.escala
        self.transparencia_fin = self.transparencia
        self.rotacion_fin = self.rotacion
        self.aceleracion_x = 0
        self.aceleracion_y = 0
        self.figura_de_colision = None
    def __init__(self,
                 pilas,
                 x=0,
                 y=0,
                 progreso=100,
                 ancho=200,
                 alto=30,
                 color_relleno=colores.amarillo,
                 con_sombra=True,
                 con_brillo=True):
        """ Constructor de la barra de Energia.

        :param x: Posición horizontal de la barra.
        :type x: int
        :param y: Posición vertical de la barra.
        :type y: int
        :param progreso: Valor actual de la barra de enegia. Debe tener un valor entre 0 o 100.
        :type progreso: int
        :param ancho: Ancho de la barra de energia en pixeles.
        :type ancho: int
        :param alto: Alto de la barra de energia en pixeles.
        :type alto: int
        :param color_relleno: Color de la barra de Energia.
        :type color_relleno: pilas.colores.Color
        :param con_sombra: Permite mostrar una pequeña sombra en la barra de Energia.
        :type con_sombra: boolean
        :param con_brillo: Permite mostrar un pequeño brillo en la barra de Energia.
        :type con_brillo: boolean

        """
        Actor.__init__(self, pilas, x=x, y=y)
        self.area_ancho = ancho
        self.area_alto = alto
        self._progreso = progreso
        self.progreso_anterior = progreso
        self.imagen = pilas.imagenes.cargar_superficie(self.area_ancho,
                                                       self.area_alto)
        self.color_relleno = color_relleno
        self.con_sombra = con_sombra
        self.con_brillo = con_brillo
        self.pintar_imagen()
        self.fijo = True
        self.miniatura = None
Exemple #22
0
    def __init__(self, pilas, texto="", x=0, y=0,
                 funcion_a_invocar=None,argumentos=None,fuente=None, imagen=None, escala=None,
                 color_normal=colores.gris,
                 color_resaltado=colores.blanco):
        """Inicializa el actor.

        :param texto: Etiqueta a mostrar
        :param x: Posicion en el eje x
        :param y: Posicion en el eje y
        :param funcion_a_invocar: Manejador, se dispara al seleccionar la opcion
        :param argumentos: Argumentos posicionales para :funcion_a_invocar:
        :param fuente: Tipografía a utilizar.
        """
        Actor.__init__(self, pilas, x=x, y=y, imagen=imagen)
        self.escala = escala
        self.texto = texto
        self.funcion_a_invocar = funcion_a_invocar
        self.argumentos = argumentos
        self.color_normal = color_normal
        self.color_resaltado = color_resaltado
        self.color = self.color_normal
        self.z = -300
        self.centro = ("centro", "centro")
Exemple #23
0
    def __init__(self, pilas, x=0, y=0, dibuja=True):
        """Inicializa la tortuga.

        :param x: Posición horizontal inicial.
        :param y: Posición vertical inicial.
        :param dibuja: Indica si a tortuga dejará marcada una linea al moverse.
        """
        Actor.__init__(self, pilas, x=x, y=y)
        self.imagen = 'tortuga.png'
        self.pizarra = self.pilas.actores.Pizarra()

        self.rotacion = 0
        self.velocidad = 6

        self.anterior_x = x
        self.anterior_y = y

        if dibuja:
            self.bajalapiz()
        else:
            self.subelapiz()

        self.color = pilas.colores.negro
Exemple #24
0
    def __init__(self, pilas, x=0, y=0, columnas=0, filas=0, estiloDeCelda="celda"):
        """Constructor del tablero:

        :param x: x del punto central de a1 (casilla inferior izquierda).
        :type x: int
        :param y: y del punto central de a1
        :type y: int
        :param columnas: cantidad de columnas que tendra el tablero.
        :type columnas: int
        :param filas: cantidad de filas
        :type filas: int
        :param estiloDeCelda: nombre de la carpeta donde se encuentra las imagenes de las celdas. relativas a: /imagenes/(nombre de estilo)
        :type estiloDeCelda: string
        """

        self.distancia = 69
        Actor.__init__(self, pilas, x=x, y=y, imagen='invisible.png')
        self.columnas = columnas
        self.filas = filas
        self.estiloDeCelda = estiloDeCelda
        self.celda = []
        self.ficha = []
        if columnas > 0 and filas > 0:
            self.graficar()
Exemple #25
0
    def __init__(self, pilas, texto="", x=0, y=0, dialogo=None,
                 avance_con_clicks=True, autoeliminar=False, ancho_globo=0,
                 alto_globo=0, objetivo=None):
        """ Constructor del Globo

        :param texto: Texto a mostrar en el globo.
        :type texto: boolean
        :param x: posicion horizontal del globo.
        :type x: int
        :param y: posicion vertical del globo.
        :type y: int
        :param dialogo: Dialogo que contiene las frases a mostrar en el globo.
        :type dialogo: Dialogo
        :param avance_con_clicks: Permite avanzar el dialogo pulsando el ratón.
        :type avance_con_clicks: boolean
        :param autoeliminar: Indica si se desea eliminar el globo cuando
                             pasen 3 segundos.
        :type autoeliminar: boolean
        :param ancho_globo: Estabece el ancho del globo en pixeles.
        :type ancho_globo: int
        :param alto_globo: Estabece el alto del globo en pixeles.
        :type alto_globo: int

        """
        self.dialogo = dialogo
        Actor.__init__(self, pilas, x=x, y=y)
        self.imagen = 'invisible.png'
        self.objetivo = objetivo

        ancho, alto = pilas.utils.obtener_area_de_texto(texto)

        # Podemos pasar el ancho del globo ya que si contiene opciones
        # cuyo texto es más largo que la cabecera del globo, no queda bien.
        if ancho_globo == 0:
            ancho = int((ancho + 12) - (ancho % 12))
        else:
            if ancho_globo > ancho:
                ancho = ancho_globo
            else:
                ancho = int((ancho + 12) - (ancho % 12))

        # Lo mismo para el alto
        if alto_globo == 0:
            alto = int((alto + 12) - alto % 12)
        else:
            alto = alto + alto_globo

        self.imagen = pilas.imagenes.cargar_superficie(ancho + 36,
                                                       alto + 24 + 35)

        self._pintar_globo(ancho, alto)
        self.imagen.texto(texto, 17, 20)
        self.centro = ("derecha", "abajo")
        self.escala = 0.1
        self.escala = [1], 0.2

        self.ancho_globo = ancho
        self.alto_globo = alto

        if avance_con_clicks:
            self.pilas.escena_actual().click_de_mouse.conectar(self.cuando_quieren_avanzar)

        if autoeliminar:
            pilas.escena_actual().tareas.una_vez(3, self.eliminar)
            
        self.x = x
        self.y = y
Exemple #26
0
    def __init__(self, pilas, texto="", x=0, y=0, dialogo=None,
                 avance_con_clicks=True, autoeliminar=False, ancho_globo=0,
                 alto_globo=0):
        """ Constructor del Globo

        :param texto: Texto a mostrar en el globo.
        :type texto: boolean
        :param x: posicion horizontal del globo.
        :type x: int
        :param y: posicion vertical del globo.
        :type y: int
        :param dialogo: Dialogo que contiene las frases a mostrar en el globo.
        :type dialogo: Dialogo
        :param avance_con_clicks: Permite avanzar el dialogo pulsando el ratón.
        :type avance_con_clicks: boolean
        :param autoeliminar: Indica si se desea eliminar el globo cuando
                             pasen 3 segundos.
        :type autoeliminar: boolean
        :param ancho_globo: Estabece el ancho del globo en pixeles.
        :type ancho_globo: int
        :param alto_globo: Estabece el alto del globo en pixeles.
        :type alto_globo: int

        """
        self.dialogo = dialogo
        Actor.__init__(self, pilas, x=x, y=y)
        self.imagen = 'invisible.png'

        ancho, alto = pilas.utils.obtener_area_de_texto(texto)

        # Podemos pasar el ancho del globo ya que si contiene opciones
        # cuyo texto es más largo que la cabecera del globo, no queda bien.
        if ancho_globo == 0:
            ancho = int((ancho + 12) - (ancho % 12))
        else:
            if ancho_globo > ancho:
                ancho = ancho_globo
            else:
                ancho = int((ancho + 12) - (ancho % 12))

        # Lo mismo para el alto
        if alto_globo == 0:
            alto = int((alto + 12) - alto % 12)
        else:
            alto = alto + alto_globo

        self.imagen = pilas.imagenes.cargar_superficie(ancho + 36,
                                                       alto + 24 + 35)

        self._pintar_globo(ancho, alto)
        self.imagen.texto(texto, 17, 20)
        self.centro = ("derecha", "abajo")
        self.escala = 0.1
        self.escala = [1], 0.2

        self.ancho_globo = ancho
        self.alto_globo = alto

        if avance_con_clicks:
            self.pilas.escena_actual().click_de_mouse.conectar(self.cuando_quieren_avanzar)

        if autoeliminar:
            pilas.escena_actual().tareas.una_vez(3, self.eliminar)
            
        self.x = x
        self.y = y
Exemple #27
0
 def __init__(self, pilas, titulo, descripcion):
     self.titulo_error = titulo
     self.descripcion_error = descripcion
     Actor.__init__(self, pilas)
     self.transparencia = 100