Mercurial > blow
changeset 9:bca8f061086e
Barking
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Sun, 28 Apr 2013 14:48:54 +0200 |
| parents | 8dff86c114fb |
| children | 4df5c37a5da1 |
| files | blow/bark.sfxr blow/bark.wav blow/game_scene.py blow/hit.sfxr blow/hit.wav blow/resources.py blow/skeleton.png blow/tree.png |
| diffstat | 8 files changed, 49 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/blow/game_scene.py Sun Apr 28 13:45:47 2013 +0200 +++ b/blow/game_scene.py Sun Apr 28 14:48:54 2013 +0200 @@ -61,8 +61,10 @@ super(TreeSprite, self).update(tick, scene) if self.rect.right < 0: self.rect.left = 768 + self.image = random.choice(self.frames) elif self.rect.left > 768: self.rect.right = 0 + self.image = random.choice(self.frames) class HeroSprite(JumpingSprite, Sprite): @@ -113,6 +115,10 @@ self.walk_left_animation, self.walk_right_animation, self.stand_animation, + self.stand_animation, + self.jump_left_animation, + self.jump_right_animation, + self.chomp_animation, ])(scene) def stun_animation(self, scene): @@ -136,19 +142,47 @@ def walk_left_animation(self, scene): self.image = self.frames[0] for i in xrange(10): - self.rect.move_ip(-6, 0) + self.rect.move_ip(-4, 0) + yield + + def jump_left_animation(self, scene): + self.image = self.frames[0] + self.dy = -16 + self.dx = -6 + while self.dy < -4 or not self.on_ground(): yield + self.dx = 0 + + def jump_right_animation(self, scene): + self.image = self.frames[-1] + self.dy = -16 + self.dx = 6 + while self.dy < -4 or not self.on_ground(): + yield + self.dx = 0 def walk_right_animation(self, scene): self.image = self.frames[-1] for i in xrange(10): - self.rect.move_ip(6, 0) + self.rect.move_ip(4, 0) yield def stand_animation(self, scene): for i in xrange(10): yield + def chomp_animation(self, scene): + scene.resources.bark.play() + self.image = self.frames[2] + yield + yield + yield + yield + self.image = self.frames[0] + yield + yield + + class SwordSprite(Sprite): def __init__(self, owner, *args, **kwargs): @@ -220,20 +254,23 @@ def __init__(self, display, resources): super(GameScene, self).__init__(display, resources) self.monsters = pygame.sprite.Group() - self.background.fill((0xf0, 0xf0, 0xf0)) + self.background.fill((0xf2, 0xf0, 0xf4)) self.hero = HeroSprite(self) self.hero.rect.midbottom = (128, BOTTOM) self.sprites.add(self.hero) - skeleton = MonsterSprite(self.resources.skeleton) - skeleton.rect.move_ip(716, BOTTOM) - self.monsters.add(skeleton) - - skeleton = MonsterSprite(self.resources.beast) - skeleton.rect.move_ip(512, BOTTOM) - self.monsters.add(skeleton) - + for i in xrange(10): + frames = random.choice([ + self.resources.skeleton, + self.resources.beast, + ]) + monster = MonsterSprite(frames) + monster.rect.move_ip( + 400 + i * 32, + BOTTOM - random.randint(64, 256), + ) + self.monsters.add(monster) self.sprites.add(self.monsters) self.tree = TreeSprite(self.resources.tree)
--- a/blow/resources.py Sun Apr 28 13:45:47 2013 +0200 +++ b/blow/resources.py Sun Apr 28 14:48:54 2013 +0200 @@ -18,6 +18,7 @@ self.tree = self.load_atlas('tree.png', 256, 256) self.swoosh = self.load_sound('swoosh.wav') self.hit = self.load_sound('hit.wav') + self.bark = self.load_sound('bark.wav') @staticmethod def load_sound(filename):
