diff skaapsteker/sprites/items.py @ 529:0ffb493a6fa4

Add support for sounds for breaking objects.
author Simon Cross <hodgestar@gmail.com>
date Sun, 10 Apr 2011 00:11:18 +0200
parents 8087e95ade2f
children eec2cf912e03
line wrap: on
line diff
--- a/skaapsteker/sprites/items.py	Sun Apr 10 00:09:20 2011 +0200
+++ b/skaapsteker/sprites/items.py	Sun Apr 10 00:11:18 2011 +0200
@@ -1,4 +1,4 @@
-from .. import engine, data
+from .. import engine, data, sound
 from .base import Item, PC_LAYER, PROJECTILE_LAYER
 
 import time
@@ -12,13 +12,16 @@
 class BreakableItem(Item):
     whole_image_file = None
     broken_image_file = None
+    breaking_sound = (None, None)
 
     collides_with = set([PC_LAYER, PROJECTILE_LAYER])
 
     def setup(self, broken, **opts):
         super(BreakableItem, self).setup(**opts)
         self.broken = broken
-
+        if self.breaking_sound[0] is not None:
+            track, volume = self.breaking_sound
+            sound.load_sound(track, track, volume)
 
     def setup_image_data(self, pos):
         self.image_file = self.broken_image_file if self._me.broken else self.whole_image_file
@@ -29,6 +32,8 @@
         self._me.broken = True
         self.broken = True
         self.setup_image_data(self._starting_tile_pos)
+        if self.breaking_sound[0] is not None:
+            sound.play_sound(self.breaking_sound[0])
 
     def damage(self, damage):
         self.smash()
@@ -215,6 +220,7 @@
 class Vase(BreakableItem):
     whole_image_file = 'props/vase-whole.png'
     broken_image_file = 'props/vase-broken.png'
+    breaking_sound = ('sounds/vase breaking.ogg', 0.1)
 
 
 class Salmon(Item):