From e638ae4d6d806453bd4739ce14333018efb4e45a Mon Sep 17 00:00:00 2001 From: Juan Sebastian Montoya Date: Wed, 26 Nov 2025 17:52:59 -0500 Subject: [PATCH] feat: Implement sound system and toggle functionality - Introduced SoundSystem to manage sound events using the Web Audio API. - Added SoundEvent component to represent different sound types (e.g., coin, damage, powerup). - Integrated sound event emissions in the Game class for various actions (e.g., collecting coins, taking damage). - Updated UI to include a sound status indicator with toggle functionality using the 'M' key. - Enhanced game experience with background music and sound effects for actions, improving player engagement. This update enriches the gameplay by adding audio feedback, enhancing the overall user experience. --- index.html | 23 +- src/components/SoundEvent.js | 21 ++ src/game/Game.js | 91 ++++++ src/game/GameConfig.js | 4 +- src/systems/PowerUpSystem.js | 2 - src/systems/SoundSystem.js | 584 +++++++++++++++++++++++++++++++++++ 6 files changed, 720 insertions(+), 5 deletions(-) create mode 100644 src/components/SoundEvent.js create mode 100644 src/systems/SoundSystem.js diff --git a/index.html b/index.html index 3117536..63d7c83 100644 --- a/index.html +++ b/index.html @@ -96,6 +96,20 @@ z-index: 100; font-family: 'Courier New', monospace; } + #soundStatus { + position: absolute; + top: 20px; + right: 100px; + font-size: 20px; + cursor: pointer; + z-index: 100; + user-select: none; + opacity: 0.8; + transition: opacity 0.2s; + } + #soundStatus:hover { + opacity: 1; + } #perfMonitor { position: absolute; top: 60px; @@ -125,6 +139,11 @@ top: 10px; right: 10px; } + #soundStatus { + top: 10px; + right: 60px; + font-size: 18px; + } #perfMonitor { top: 40px; right: 10px; @@ -144,6 +163,8 @@
v-
+
🔊
+
FPS: 60
Frame: 16.7ms
@@ -159,7 +180,7 @@

Controls: WASD or Arrow Keys to move | Touch and drag to move (mobile) | Collect yellow coins | Avoid red obstacles!

-

Press "T" or shake device to toggle performance monitor

+

Press "T" to toggle performance monitor | Press "M" to toggle sound