changeset 25:e6b553c64b1e

shoot effects
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Sat, 16 Mar 2013 01:38:33 +0100
parents 922f2ef2f7e4
children 9dffc4f75d96
files fhrl/effect.png fhrl/mobs.py fhrl/resources.py
diffstat 3 files changed, 25 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
Binary file fhrl/effect.png has changed
--- a/fhrl/mobs.py	Sat Mar 16 01:13:13 2013 +0100
+++ b/fhrl/mobs.py	Sat Mar 16 01:38:33 2013 +0100
@@ -54,6 +54,23 @@
         self.rect.move_ip(pos)
 
 
+class Effect(pygame.sprite.DirtySprite):
+    def __init__(self, frames, center):
+        super(Effect, self).__init__()
+        self.frames = frames
+        self.image = frames[0]
+        self.rect = self.image.get_rect()
+        self.rect.center = center
+        self.depth = 12
+
+    def anim(self):
+        for frame in self.frames:
+            self.image = frame
+            yield
+            yield
+        self.kill()
+
+
 class Number(pygame.sprite.DirtySprite):
     def __init__(self, number, resources):
         super(Number, self).__init__()
@@ -96,8 +113,6 @@
         self.kill()
 
 
-
-
 class Stuff(Sprite):
     def __init__(self, kind, (x, y)):
         super(Stuff, self).__init__()
@@ -127,7 +142,7 @@
 
     def move_to(self, (x, y), (scroll_x, scroll_y)=(0, 0)):
         self.x, self.y = x, y
-        self.rect.topleft = x * 48 - 24 - scroll_x, y * 32 - 33 - scroll_y
+        self.rect.topleft = x * 48 - 24 + scroll_x, y * 32 - 33 + scroll_y
 
     def init_sprite(self, resources):
         self.set_image(resources.mobs[self.kind['sprite']])
@@ -230,6 +245,12 @@
         anims = []
         while not level.is_wall((x, y)):
             mob = level.find_mob((x, y))
+            effect = Effect(
+                display.resources.effect[0:4],
+                (x * 48 + display.x, y * 32 + display.y)
+            )
+            display.sprites.add(effect)
+            anims.append(effect.anim())
             if mob:
                 anims.extend(mob.wound(100, display))
             x += DX[direction]
--- a/fhrl/resources.py	Sat Mar 16 01:13:13 2013 +0100
+++ b/fhrl/resources.py	Sat Mar 16 01:38:33 2013 +0100
@@ -12,6 +12,7 @@
         self.mobs = self.load_atlas('mobs2.png', 48, 48)
         self.stuff = self.load_atlas('stuff.png', 48, 48)
         self.arrows = self.load_atlas('arrows.png', 48, 48)
+        self.effect = self.load_atlas('effect.png', 48, 48)
         self.items = self.load_atlas('items.png', 48, 32)
         self.digits = self.load_atlas('digits.png', 12, 15)