1
2
3
4
5
6
7
8
9 import pilas
10 from pilas.actores import Actor
11
13 """Representa un indicador de energia (en forma de barra horizontal)."""
14
16 """ Constructor de la barra de Energia.
17
18 :param x: Posición horizontal de la barra.
19 :type x: int
20 :param y: Posición vertical de la barra.
21 :type y: int
22 :param progreso: Valor actual de la barra de enegia. Debe tener un valor entre 0 o 100.
23 :type progreso: int
24 :param ancho: Ancho de la barra de energia en pixeles.
25 :type ancho: int
26 :param alto: Alto de la barra de energia en pixeles.
27 :type alto: int
28 :param color_relleno: Color de la barra de Energia.
29 :type color_relleno: pilas.colores.Color
30 :param con_sombra: Permite mostrar una pequeña sombra en la barra de Energia.
31 :type con_sombra: boolean
32 :param con_brillo: Permite mostrar un pequeño brillo en la barra de Energia.
33 :type con_brillo: boolean
34
35 """
36 Actor.__init__(self, x=x, y=y)
37 self.area_ancho = ancho
38 self.area_alto = alto
39 self.progreso = progreso
40 self.progreso_anterior = progreso
41 self.imagen = pilas.imagenes.cargar_superficie(self.area_ancho, self.area_alto)
42 self.color_relleno = color_relleno
43 self.con_sombra = con_sombra
44 self.con_brillo = con_brillo
45 self.pintar_imagen()
46 self.fijo = True
47 self.miniatura = None
48
50 """ Dibuja la barra de energia en pantalla. """
51 self.imagen.limpiar()
52 color_relleno = self.color_relleno
53 brillo = pilas.colores.blanco_transparente
54 sombra = pilas.colores.gris_transparente
55
56 area = self.area_ancho / 100.0
57 self.imagen.rectangulo(0, 0, area * self.progreso, self.area_alto,
58 color=color_relleno, relleno=True)
59
60 if self.con_brillo:
61 self.imagen.rectangulo(0, 3, area * self.progreso, 3, color=brillo, relleno=True)
62 if self.con_sombra:
63 self.imagen.rectangulo(0, self.area_alto - 4, area * self.progreso, 1, color=sombra, relleno=True)
64
65
66 self.imagen.rectangulo(1, 1, self.area_ancho-2, self.area_alto-2,
67 color=pilas.colores.negro, relleno=False, grosor=2)
68
70 """ Actualiza la barra de estado por si hubiera incrementado o decrementado."""
71 if self.progreso_anterior != self.progreso:
72
73 self.progreso_anterior = self.progreso
74 self.pintar_imagen()
75
77 """ Permite cargar una imagen a la izqiuerda de la barra de Energia.
78
79 :param imagen: Ruta de la imagen que se desea mostrar a la izquierda de la barra de Energia.
80 :type imagen: string
81 """
82 if self.miniatura:
83 self.miniatura.eliminar()
84
85 self.miniatura = pilas.actores.Actor(imagen)
86 self.miniatura.derecha = self.izquierda - 5
87 self.miniatura.arriba = self.arriba
88 self.miniatura.fijo = True
89