1
2
3
4
5
6
7
8
9 import pilas
10 from pilas.actores import Actor
11 from pilas.comportamientos import Comportamiento
12
13 VELOCIDAD = 100
14
15
17 """Es un personaje de un marciano que puede caminar, saltar y disparar.
18
19 .. image:: images/actores/martian.png
20
21 Este actor se puede mover con el teclado, pulsando las teclas ``izquierda``,
22 ``arriba``, ``abajo`` y ``derecha`` ademas de disparar con la
23 ``barra espaciadora``.
24
25 El marciano necesita un mapa para no caer al vacio y desaparecer de la
26 pantalla.
27
28 >>> marciano = pilas.actores.Martian(pilas.actores.Mapa())
29
30 """
31
33 """Constructor del marciano
34
35 :param mapa: el mapa para que interactue el marciano.
36 :type mapa: pilas.actores.Mapa
37 :param x: Posición horizontal del marciano.
38 :type x: int
39 :param y: Posición vertical del marciano.
40 :type y: int
41
42 """
43 Actor.__init__(self, x=x, y=y)
44 self.imagen = pilas.imagenes.cargar_grilla("marcianitos/martian.png", 12)
45 self.definir_cuadro(0)
46 self.mapa = mapa
47 self.hacer(Esperando())
48 self.municion = pilas.actores.proyectil.Bala
49 self.aprender(pilas.habilidades.Disparar,
50 municion=pilas.actores.proyectil.Bala,
51 angulo_salida_disparo=-90,
52 frecuencia_de_disparo=8,
53 offset_disparo=(25,0),
54 offset_origen_actor=(25,23))
55
56
58 """Define el cuadro de animación a mostrar.
59
60 :param indice: El número de cuadro comenzando desde 0.
61 """
62 self.imagen.definir_cuadro(indice)
63 self.definir_centro((32, 123))
64
66 "Sigue el movimiento de la figura."
67 pass
68
70 "Indica si el persona puede saltar."
71 return True
72
76
77
79 """Representa al actor en posicion normal.
80
81 Este comportamiento espera a que el usuario pulse
82 alguna tecla para entrar en movimiento.
83 """
85 """Inicia el comportamiento y define los valores iniciales.
86
87 :param receptor: El actor que será controlado por este comportamiento."
88 """
89 self.receptor = receptor
90 self.receptor.definir_cuadro(0)
91
105
109
111 """Representa al actor caminando hacia la izquierda o derecha."""
112
114 self.cuadros = [1, 1, 1, 2, 2, 2]
115 self.paso = 0
116
118 """Inicia el comportamiento y define los valores iniciales.
119
120 :param receptor: El actor que será controlado por este comportamiento."
121 """
122 self.receptor = receptor
123
142
144 """Cambia el cuado de animación para avanzar la animación"""
145 self.paso += 1
146
147 if self.paso >= len(self.cuadros):
148 self.paso = 0
149
150 self.receptor.definir_cuadro(self.cuadros[self.paso])
151
153 """Representa al actor realizando un salto."""
154
155 - def __init__(self, velocidad_de_salto):
158
160 """Inicia el comportamiento y define los valores iniciales.
161
162 :param receptor: El actor que será controlado por este comportamiento."
163 """
164 self.receptor = receptor
165 self.receptor.definir_cuadro(3)
166
190
192 """Representa al actor disparando un proyectil."""
193
195 self.cuadros = [6, 6, 7, 7, 8, 8]
196 self.paso = 0
197
203
205 self.paso += 1
206
207 if self.paso >= len(self.cuadros):
208 self.paso = 0
209 return True
210
211 self.receptor.definir_cuadro(self.cuadros[self.paso])
212