From 3836f4a2c927608644ef78f87fba7caa55d8d420 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Sat, 1 Feb 2025 02:57:01 -0500 Subject: [PATCH] Added sound for when pumpkin hits you or lands near by. --- sounds/pumpkin_splat.ogg | 3 +++ src/catapult.py | 14 ++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 sounds/pumpkin_splat.ogg diff --git a/sounds/pumpkin_splat.ogg b/sounds/pumpkin_splat.ogg new file mode 100644 index 0000000..3dbd434 --- /dev/null +++ b/sounds/pumpkin_splat.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e55ce37b59daad1371488198140409eaca05d43766b845ad59cfab02d937490 +size 9201 diff --git a/src/catapult.py b/src/catapult.py index 37defba..7448c46 100644 --- a/src/catapult.py +++ b/src/catapult.py @@ -29,11 +29,17 @@ class Pumpkin: return True - def stop_sound(self): - """Stop the pumpkin's sound""" + def stop_sound(self, sounds, playerX): + """Stop the pumpkin's sound and play splat if needed""" if self.soundChannel: obj_stop(self.soundChannel) self.soundChannel = None + # Calculate volume and pan for splat sound based on final position + volume, left, right = calculate_volume_and_pan(playerX, self.x) + if volume > 0: # Only play if within audible range + channel = sounds["pumpkin_splat"].play() + if channel: + channel.set_volume(volume * left, volume * right) def check_collision(self, player): """Check if pumpkin hits player""" @@ -125,13 +131,13 @@ class Catapult(Object): # Always update existing pumpkins for pumpkin in self.activePumpkins[:]: # Copy list to allow removal if not pumpkin.update(self.sounds, player.xPos): - pumpkin.stop_sound() + pumpkin.stop_sound(self.sounds, player.xPos) self.activePumpkins.remove(pumpkin) continue if pumpkin.check_collision(player): player.set_health(player.get_health() - pumpkin.damage) - pumpkin.stop_sound() + pumpkin.stop_sound(self.sounds, player.xPos) pumpkin.isActive = False self.activePumpkins.remove(pumpkin) speak("Hit by a pumpkin!")