Mercurial > fhrl
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
--- 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)
