diff options
author | Nguyễn Gia Phong <vn.mcsinyx@gmail.com> | 2018-01-24 23:46:44 +0700 |
---|---|---|
committer | Nguyễn Gia Phong <vn.mcsinyx@gmail.com> | 2018-01-24 23:46:44 +0700 |
commit | 097357347c968adbf636f37e49f3ddf4c68ba5bc (patch) | |
tree | 3d266a38e402c8b0e795fb067d04d230582a69d5 /brutalmaze/misc.py | |
parent | 59501c6c44f26b66d4bb314b9f2eb21d7984eeb7 (diff) | |
download | brutalmaze-097357347c968adbf636f37e49f3ddf4c68ba5bc.tar.gz |
Implement (pseudo) surround sound
Diffstat (limited to 'brutalmaze/misc.py')
-rw-r--r-- | brutalmaze/misc.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/brutalmaze/misc.py b/brutalmaze/misc.py index 431b5e6..6f79c0b 100644 --- a/brutalmaze/misc.py +++ b/brutalmaze/misc.py @@ -83,7 +83,18 @@ def choices(d): if num <= w: return population[i] -def play(sound, volume): +def play(sound, volume, angle=None): """Play a pygame.mixer.Sound at the given volume.""" - sound.set_volume(volume) - sound.play() + if angle is None: + sound.set_volume(volume) + sound.play() + else: + delta = cos(angle) + volumes = [volume * (1-delta), volume * (1+delta)] + for i, v in enumerate(volumes): + if v > 1: + volumes[i - 1] += v - 1 + volumes[i] = 1.0 + sound.set_volume(1.0) + channel = sound.play() + channel.set_volume(*volumes) |