Mercurial > fife-parpg
diff demos/shooter/scripts/ships/enemies.py @ 463:ac0f62a07a3e
Added enemy explosions and other animations.
Remove the enemies from the scene after the explosion animation is complete.
author | prock@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Mon, 12 Apr 2010 20:41:24 +0000 |
parents | c4f745a566d6 |
children | 4d0aa75a82f1 |
line wrap: on
line diff
--- a/demos/shooter/scripts/ships/enemies.py Mon Apr 12 19:01:41 2010 +0000 +++ b/demos/shooter/scripts/ships/enemies.py Mon Apr 12 20:41:24 2010 +0000 @@ -29,14 +29,16 @@ class EnemyActionListener(ShipActionListener): def __init__(self, ship): - super(PlayerActionListener, self).__init__(ship) + super(EnemyActionListener, self).__init__(ship) def onInstanceActionFinished(self, instance, action): - pass + if action.getId() == 'explode': + self._ship.removeFromScene() class Saucer1(Ship): - def __init__(self, scene, name, findInstance=True): + def __init__(self, scene, name, instance, findInstance=True): super(Saucer1, self).__init__(scene, name, findInstance) + self._instance = instance self._dir = 0 self._time = 500 self.width = 0.2 @@ -45,6 +47,8 @@ self.weapon = Cannon(self._scene, self, 1000) self.weapon.projectilevelocity = 0.4 + + self._actionlistener = EnemyActionListener(self) def update(self): if self._dir == 1: @@ -65,8 +69,9 @@ super(Saucer1, self).update() class Saucer2(Ship): - def __init__(self, scene, name, findInstance=True): + def __init__(self, scene, name, instance, findInstance=True): super(Saucer2, self).__init__(scene, name, findInstance) + self._instance = instance self._dir = 0 self._time = 1000 self.width = 0.2 @@ -75,6 +80,8 @@ self.weapon = Cannon(self._scene, self, 2000) self.weapon.projectilevelocity = 0.4 + + self._actionlistener = EnemyActionListener(self) def update(self): if self._dir == 1: @@ -95,8 +102,9 @@ super(Saucer2, self).update() class DiagSaucer(Ship): - def __init__(self, scene, name, direction, findInstance=True): + def __init__(self, scene, name, direction, instance, findInstance=True): super(DiagSaucer, self).__init__(scene, name, findInstance) + self._instance = instance self.width = 0.2 self.height = 0.075 @@ -107,15 +115,17 @@ self.weapon = Cannon(self._scene, self, 2000) self.weapon.projectilevelocity = 0.4 + + self._actionlistener = EnemyActionListener(self) def update(self): self.applyThrust(fife.DoublePoint(-0.25,self._ythrust)) super(DiagSaucer, self).update() class Streaker(Ship): - def __init__(self, scene, name, findInstance=True): + def __init__(self, scene, name, instance, findInstance=True): super(Streaker, self).__init__(scene, name, findInstance) - + self._instance = instance self.width = 0.2 self.height = 0.2 @@ -123,6 +133,8 @@ self.weapon = Cannon(self._scene, self, 2000) self.weapon.projectilevelocity = 1.0 + + self._actionlistener = EnemyActionListener(self) def update(self): self.applyThrust(fife.DoublePoint(-0.40,0))