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