1
2
3
4
5
6
7
8
9 import pilas
10 from pilas.actores import Animacion
11 import math
12
13
15 """Representa una nave de aspecto infantil que puede disparar.
16
17 .. image:: images/actores/spacekids.png
18
19 """
20
21 - def __init__(self, x=0, y=0, velocidad=2):
22 """
23 Constructor de la Nave.
24
25 :param x: posicion horizontal de la nave.
26 :type x: int
27 :param y: posicion vertical de la nave.
28 :type y: int
29 :param velocidad: Velocidad que llevará la nave.
30 :type velocidad: int
31
32 """
33 self.velocidad = velocidad
34 grilla = pilas.imagenes.cargar_grilla("spacekids.png", 2)
35 Animacion.__init__(self, grilla, ciclica=True, x=x, y=y)
36 self.radio_de_colision = 20
37 self.aprender(pilas.habilidades.PuedeExplotar)
38
39 self.municion = pilas.actores.proyectil.Bala
40 self.aprender(pilas.habilidades.Disparar,
41 municion=self.municion,
42 angulo_salida_disparo=0,
43 frecuencia_de_disparo=6,
44 offset_disparo=(29,29),
45 escala=0.7)
46
47 self.aprender(pilas.habilidades.MoverseConElTeclado,
48 velocidad_maxima=self.velocidad,
49 aceleracion=1,
50 deceleracion=0.04,
51 con_rotacion=False,
52 velocidad_rotacion=0,
53 marcha_atras=True)
54
57
59 """Hace que una nave tenga como enemigos a todos los actores del grupo.
60
61 :param grupo: El grupo de actores que serán sus enemigos.
62 :type grupo: array
63 :param cuando_elimina_enemigo: Funcion que se ejecutará cuando se elimine un enemigo.
64
65 """
66 self.cuando_elimina_enemigo = cuando_elimina_enemigo
67 self.habilidades.Disparar.definir_colision(grupo, self.hacer_explotar_al_enemigo)
68
70 """Es el método que se invoca cuando se produce una colisión 'tiro <-> enemigo'
71
72 :param mi_disparo: El disparo de la nave.
73 :param el_enemigo: El enemigo que se eliminará.
74 """
75 mi_disparo.eliminar()
76 el_enemigo.eliminar()
77
78 if self.cuando_elimina_enemigo:
79 self.cuando_elimina_enemigo()
80