pilas.actores.navekids

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

# Source Code for Module pilas.actores.navekids

     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 Animacion
    11  import math
    12
    13
    14 -class NaveKids(Animacion):
    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
    55 -    def actualizar(self):
    56          Animacion.actualizar(self)
    57
    58 -    def definir_enemigos(self, grupo, cuando_elimina_enemigo=None):
    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
    69 -    def hacer_explotar_al_enemigo(self, mi_disparo, el_enemigo):
    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