pilas.actores.pacman

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

# Source Code for Module pilas.actores.pacman

     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 Pacman(Actor):
    13      """Muestra un personaje similar al juego Pac-Man
    14
    15      .. image:: images/actores/pacman.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
    24 -    def __init__(self, x=0, y=0, velocidad=3):
    25          """Constructor de Pacman
    26
    27          :param x: Posición horizontal del pacman.
    28          :type x: int
    29          :param y: Posición vertical del pacman.
    30          :type y: int
    31          :param velocidad: velocidad en la que se desplaza pacman
    32          :type velocidad: int
    33
    34          """
    35          self.grilla = pilas.imagenes.cargar_grilla("pacman.png", 4, 4)
    36          Actor.__init__(self, self.grilla, x, y)
    37          self.cuadro = 0
    38          self.control = pilas.escena_actual().control
    39          self.velocidad = velocidad
    40          self.aprender(pilas.habilidades.SeMantieneEnPantalla)
    41          self.radio_de_colision = 5
    42          self.posicion = 0  # 0 = para izquierda
    43                             # 1 = para la derecha
    44                             # 2 = para arriba
    45                             # 3 = para abajo
    46
    47 -    def actualizar(self):
    48          if self.control.izquierda:
    49              self.posicion = 0
    50              self.x -= self.velocidad
    51              self._reproducir_animacion()
    52          elif self.control.derecha:
    53              self.posicion = 1
    54              self.x += self.velocidad
    55              self._reproducir_animacion()
    56          elif self.control.abajo:
    57              self.posicion = 3
    58              self.y -= self.velocidad
    59              self._reproducir_animacion()
    60          elif self.control.arriba:
    61              self.posicion = 2
    62              self.y += self.velocidad
    63              self._reproducir_animacion()
    64
    65 -    def _reproducir_animacion(self):
    66          self.cuadro += 0.4
    67
    68          if self.cuadro > 3:
    69              self.cuadro = 0
    70
    71          self.definir_cuadro(int(self.posicion * 4 + self.cuadro))
    72
    73 -    def definir_cuadro(self, indice):
    74          """Cambia el cuadro de animación del actor."""
    75          self.imagen.definir_cuadro(indice)
    76