Package pilas :: Package actores :: Module energia
[hide private]
[frames] | no frames]

Source Code for Module pilas.actores.energia

 1  # -*- encoding: utf-8 -*- 
 2  # Pilas engine - A video game framework. 
 3  # 
 4  # Copyright 2010 - Hugo Ruscitti 
 5  # License: LGPLv3 (see http://www.gnu.org/licenses/lgpl.html) 
 6  # 
 7  # Website - http://www.pilas-engine.com.ar 
 8   
 9  import pilas 
10  from pilas.actores import Actor 
11   
12 -class Energia(Actor):
13 """Representa un indicador de energia (en forma de barra horizontal).""" 14
15 - def __init__(self, x=0, y=0, progreso=100, ancho=200, alto=30, color_relleno=pilas.colores.amarillo, con_sombra=True, con_brillo=True):
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
49 - def pintar_imagen(self):
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 # Borde exterior 66 self.imagen.rectangulo(1, 1, self.area_ancho-2, self.area_alto-2, 67 color=pilas.colores.negro, relleno=False, grosor=2)
68
69 - def actualizar(self):
70 """ Actualiza la barra de estado por si hubiera incrementado o decrementado.""" 71 if self.progreso_anterior != self.progreso: 72 # Carga el progreso y lo actualiza pero siempre entre 0 y 100 73 self.progreso_anterior = self.progreso 74 self.pintar_imagen()
75
76 - def cargar_miniatura(self, imagen):
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