about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorNguyễn Gia Phong <vn.mcsinyx@gmail.com>2018-01-28 11:48:41 +0700
committerNguyễn Gia Phong <vn.mcsinyx@gmail.com>2018-01-28 11:48:41 +0700
commit1b2dc5e1692e9d7b010aa9822d228f4fc3c5ac1e (patch)
treecc0c976fb57493055b489654cb4085548d18c45a
parentfca23ea3ce86461f1b970afeb87fcbf5c3a124d3 (diff)
downloadbrutalmaze-1b2dc5e1692e9d7b010aa9822d228f4fc3c5ac1e.tar.gz
Make all sound playing fail-safe 0.4.2
-rw-r--r--brutalmaze/characters.py2
-rw-r--r--brutalmaze/maze.py2
-rw-r--r--brutalmaze/misc.py8
-rwxr-xr-xsetup.py2
4 files changed, 7 insertions, 7 deletions
diff --git a/brutalmaze/characters.py b/brutalmaze/characters.py
index c47e22e..262578e 100644
--- a/brutalmaze/characters.py
+++ b/brutalmaze/characters.py
@@ -79,7 +79,7 @@ class Hero:
             self.wound -= HEAL_SPEED / self.spin_speed / HERO_HP
             if self.wound < 0: self.wound = 0.0
         if time > self.next_beat:
-            self.sfx_heart.play()
+            play(self.sfx_heart)
             self.next_beat = time + MIN_BEAT*(2 - self.wound/HERO_HP)
 
         if self.slashing and time >= self.next_strike:
diff --git a/brutalmaze/maze.py b/brutalmaze/maze.py
index 86edadf..da3428f 100644
--- a/brutalmaze/maze.py
+++ b/brutalmaze/maze.py
@@ -365,4 +365,4 @@ class Maze:
         self.hero.dead = True
         self.hero.slashing = self.hero.firing = False
         self.vx = self.vy = 0.0
-        self.sfx_lose.play()
+        play(self.sfx_lose)
diff --git a/brutalmaze/misc.py b/brutalmaze/misc.py
index eb2d45c..6593c48 100644
--- a/brutalmaze/misc.py
+++ b/brutalmaze/misc.py
@@ -83,13 +83,14 @@ def choices(d):
         if num <= w: return population[i]
 
 
-def play(sound, volume, angle=None):
+def play(sound, volume=1.0, angle=None):
     """Play a pygame.mixer.Sound at the given volume."""
     if pygame.mixer.find_channel() is None:
         pygame.mixer.set_num_channels(pygame.mixer.get_num_channels() + 1)
+
+    channel = sound.play()
     if angle is None:
-        sound.set_volume(volume)
-        sound.play()
+        channel.set_volume(volume)
     else:
         delta = cos(angle)
         volumes = [volume * (1-delta), volume * (1+delta)]
@@ -98,5 +99,4 @@ def play(sound, volume, angle=None):
                 volumes[i - 1] += v - 1
                 volumes[i] = 1.0
         sound.set_volume(1.0)
-        channel = sound.play()
         channel.set_volume(*volumes)
diff --git a/setup.py b/setup.py
index 19ba02b..1984de8 100755
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,7 @@ with open('README.rst') as f:
 
 setup(
     name='brutalmaze',
-    version='0.4.1',
+    version='0.4.2',
     description='A hash and slash game with fast-paced action and a minimalist art style',
     long_description=long_description,
     url='https://github.com/McSinyx/brutalmaze',