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)
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()
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)
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()
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
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
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
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
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
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)
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, 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, 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, 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")
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
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()
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
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
def __init__(self, pilas, titulo, descripcion): self.titulo_error = titulo self.descripcion_error = descripcion Actor.__init__(self, pilas) self.transparencia = 100