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
Binary file blow/bark.sfxr has changed
Binary file blow/bark.wav has changed
--- 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)
Binary file blow/hit.sfxr has changed
Binary file blow/hit.wav has changed
--- 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):
Binary file blow/skeleton.png has changed
Binary file blow/tree.png has changed