pilas.actores.energia

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