pilas.actores.fantasma

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

# Source Code for Module pilas.actores.fantasma

     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 Fantasma(Actor):
    13      """Muestra un fantasma similar al del juego Pac-Man
    14
    15      .. image:: images/actores/fantasma.png
    16
    17      Este actor se puede mover con el teclado, pulsando las teclas ``izquierda``,
    18      ``arriba``, ``abajo`` y ``derecha``.
    19
    20          >>> pacman = pilas.actores.Pacman(velocidad=5)
    21      """
    22
    23 -    def __init__(self, x=0, y=0, velocidad=3):
    24          """ Constructor del Fantasma
    25
    26          :param x: Posición horizontal de la explosion.
    27          :type x: int
    28          :param y: Posición vertical de la explosion.
    29          :type y: int
    30          :param velocidad: Velocidad con la que se desplaza el fantasma.
    31          :type velocidad: int
    32          """
    33          self.grilla = pilas.imagenes.cargar_grilla("fantasma.png", 8, 1)
    34          Actor.__init__(self, self.grilla, x, y)
    35          self.cuadro = 0
    36          self.control = pilas.escena_actual().control
    37          self.velocidad = velocidad
    38          self.posicion = 0  # 0 = para arriba
    39                             # 1 = para abajo
    40                             # 2 = para izquierda
    41                             # 3 = para derecha
    42
    43 -    def actualizar(self):
    44          if self.control.izquierda:
    45              self.posicion = 2
    46              self.x -= self.velocidad
    47              self._reproducir_animacion()
    48          elif self.control.derecha:
    49              self.posicion = 3
    50              self.x += self.velocidad
    51              self._reproducir_animacion()
    52          elif self.control.abajo:
    53              self.posicion = 1
    54              self.y -= self.velocidad
    55              self._reproducir_animacion()
    56          elif self.control.arriba:
    57              self.posicion = 0
    58              self.y += self.velocidad
    59              self._reproducir_animacion()
    60
    61 -    def _reproducir_animacion(self):
    62          self.cuadro += 0.2
    63
    64          if self.cuadro > 1:
    65              self.cuadro = 0
    66
    67          self.definir_cuadro(int(self.posicion * 2 + self.cuadro))
    68
    69 -    def definir_cuadro(self, indice):
    70          """Cambia el cuadro de animación a mostrar.
    71
    72          :param indice: Número de cuadro a mostrar.
    73          """
    74          self.imagen.definir_cuadro(indice)
    75