pilas.actores.proyectil

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

# Source Code for Module pilas.actores.proyectil

      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  from pilas.actores import Animacion
     12
     13
     14 -class Misil(Animacion):
     15      """Representa un misil que va en línea recta con aceleración."""
     16
     17 -    def __init__(self, x=0, y=0, rotacion=0, velocidad_maxima=8,
     18                   angulo_de_movimiento=90):
     19          """
     20          Construye el Misil.
     21
     22          :param x: Posición x del proyectil.
     23          :param y: Posición y del proyectil.
     24          :param rotacion: Angulo de rotación del Actor.
     25          :param velocidad_maxima: Velocidad máxima que alcanzará el proyectil.
     26          :param angulo_de_movimiento: Angulo en que se moverá el Actor..
     27
     28          """
     29          grilla = pilas.imagenes.cargar_grilla("disparos/misil.png", 3)
     30          Animacion.__init__(self, grilla, ciclica=True, x=x, y=y)
     31          self.rotacion = rotacion
     32          self.radio_de_colision = 15
     33
     34          self.hacer(pilas.comportamientos.Proyectil(velocidad_maxima=velocidad_maxima,
     35                                                     aceleracion=0.4,
     36                                                     angulo_de_movimiento=angulo_de_movimiento,
     37                                                     gravedad=0))
     38
     39 -class Bala(Actor):
     40      """ Representa una bala que va en línea recta. """
     41 -    def __init__(self,x=0,y=0,rotacion=0,velocidad_maxima=9,
     42                   angulo_de_movimiento=90):
     43
     44          """
     45          Construye la Bala.
     46
     47          :param x: Posición x del proyectil.
     48          :param y: Posición y del proyectil.
     49          :param velocidad_maxima: Velocidad máxima que alcanzará el proyectil.
     50          :param angulo_de_movimiento: Angulo en que se moverá el Actor..
     51
     52          """
     53          imagen = pilas.imagenes.cargar('disparos/bola_amarilla.png')
     54          Actor.__init__(self, imagen)
     55          self.x = x
     56          self.y = y
     57          self.rotacion = rotacion
     58
     59          self.radio_de_colision = 5
     60
     61          self.hacer(pilas.comportamientos.Proyectil(velocidad_maxima=velocidad_maxima,
     62                                                     aceleracion=1,
     63                                                     angulo_de_movimiento=angulo_de_movimiento,
     64                                                     gravedad=0))
     65
     66
     67 -class Dinamita(Animacion):
     68      """ Representa un cartucho de dinamita. """
     69
     70 -    def __init__(self,x=0,y=0,rotacion=0,velocidad_maxima=4,
     71                   angulo_de_movimiento=90):
     72
     73          """
     74          Construye la Dinamita.
     75
     76          :param x: Posición x del proyectil.
     77          :param y: Posición y del proyectil.
     78          :param rotacion: Angulo de rotación del Actor.
     79          :param velocidad_maxima: Velocidad máxima que alcanzará el proyectil.
     80          :param angulo_de_movimiento: Angulo en que se moverá el Actor..
     81
     82          """
     83          grilla = pilas.imagenes.cargar_grilla("disparos/dinamita.png", 2)
     84          Animacion.__init__(self, grilla, ciclica=True, x=x, y=y)
     85          self.rotacion = rotacion
     86          self.radio_de_colision = 20
     87
     88          self.hacer(pilas.comportamientos.Proyectil(velocidad_maxima=velocidad_maxima,
     89                                                     aceleracion=0.4,
     90                                                     angulo_de_movimiento=angulo_de_movimiento,
     91                                                     gravedad=3))
     92          self.escala = 0.7
     93
     94          self.aprender(pilas.habilidades.PuedeExplotar)
     95
     96 -    def actualizar(self):
     97          self.rotacion += 3
     98
     99
    100 -class EstrellaNinja(Actor):
    101      """ Representa una estrella ninja. """
    102
    103 -    def __init__(self,x=0,y=0,rotacion=0,velocidad_maxima=4,
    104                   angulo_de_movimiento=90):
    105
    106          """
    107          Construye la Estella Ninja.
    108
    109          :param x: Posición x del proyectil.
    110          :param y: Posición y del proyectil.
    111          :param rotacion: Angulo de rotación del Actor.
    112          :param velocidad_maxima: Velocidad máxima que alcanzará el proyectil.
    113          :param angulo_de_movimiento: Angulo en que se moverá el Actor..
    114
    115          """
    116          imagen = pilas.imagenes.cargar('disparos/estrella.png')
    117          Actor.__init__(self, imagen)
    118          self.x = x
    119          self.y = y
    120          self.rotacion = rotacion
    121          self.escala = 0.5
    122          self.radio_de_colision = 20
    123
    124          self.hacer(pilas.comportamientos.Proyectil(velocidad_maxima=velocidad_maxima,
    125                                                     aceleracion=1,
    126                                                     angulo_de_movimiento=angulo_de_movimiento,
    127                                                     gravedad=0))
    128
    129 -    def actualizar(self):
    130          self.rotacion += 10
    131