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