Added sound for when pumpkin hits you or lands near by.
This commit is contained in:
BIN
sounds/pumpkin_splat.ogg
(Stored with Git LFS)
Normal file
BIN
sounds/pumpkin_splat.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
@@ -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!")
|
||||
|
Reference in New Issue
Block a user