From 8b130113ee1e4d98bf29f0c6793fac817b0eae5d Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Sun, 23 Jul 2023 09:49:07 +0700 Subject: [PATCH 1/4] add move sound --- client/src/lib/GameAudio.ts | 32 +++++++++++++++++ client/src/lib/assets/fx/accomplished.wav | Bin 0 -> 30044 bytes .../assets => src/lib/assets/fx}/jump.wav | Bin client/src/lib/game.svelte | 34 +++++++++++++++++- 4 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 client/src/lib/GameAudio.ts create mode 100644 client/src/lib/assets/fx/accomplished.wav rename client/{static/assets => src/lib/assets/fx}/jump.wav (100%) diff --git a/client/src/lib/GameAudio.ts b/client/src/lib/GameAudio.ts new file mode 100644 index 0000000..4d9637b --- /dev/null +++ b/client/src/lib/GameAudio.ts @@ -0,0 +1,32 @@ +export default class GameAudio { + track: HTMLAudioElement | undefined | null; + canPlay: boolean = false; + + constructor(url?: string) { + if (url?.length) this.track = new Audio(url); + } + + setCanPlay(state: boolean) { + this.canPlay = state; + } + + onCanPlay(ev: Event) { + this.setCanPlay(true); + } + + offCanPlay() { + this.setCanPlay(false); + } + + onMount() { + if (!this.track) return; + this.track.addEventListener('canplay', this.onCanPlay.bind(this)); + + return () => { + if (!this.track) return; + + this.track.removeEventListener('canplay', this.onCanPlay.bind(this)); + this.offCanPlay(); + }; + } +} \ No newline at end of file diff --git a/client/src/lib/assets/fx/accomplished.wav b/client/src/lib/assets/fx/accomplished.wav new file mode 100644 index 0000000000000000000000000000000000000000..09050d511db2e0f53deb0bd4ded5cec9895e8d3f GIT binary patch literal 30044 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
Y2KJ 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 new GameAudio(src)); + + function playMoveSound() { + const track = moveSounds[currentPlayer - 1]; + + if (track.track && track.canPlay) + track.track.play(); + } + + function playRandomMoveSound() { + const playableTracks: GameAudio[] = []; + for (const ga of moveSounds) + if (ga.canPlay) playableTracks.push(ga); + + if (!playableTracks.length) return; + + const rand = Math.floor(Math.random() * playableTracks.length); + const track = playableTracks[rand]; + + if (track.track) track.track.play(); + } + onMount(() => { let i = setTimeout(() => { moveDelayMultiplier = 0; }, duration * moveDelayMultiplier); - return () => clearTimeout(i); + const cleanupFns = moveSounds.map(ga => ga.onMount()); + + return () => { + clearTimeout(i); + + cleanupFns.every(fn => fn ? fn() : null); + }; }); let innerWidth = typeof window !== "undefined" ? window.innerWidth : 0; From 98bbaf402a4220771af4e42a6623669d4a526041 Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Sun, 23 Jul 2023 09:58:09 +0700 Subject: [PATCH 2/4] maintain function reference --- client/src/lib/GameAudio.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/client/src/lib/GameAudio.ts b/client/src/lib/GameAudio.ts index 4d9637b..9020651 100644 --- a/client/src/lib/GameAudio.ts +++ b/client/src/lib/GameAudio.ts @@ -20,12 +20,14 @@ export default class GameAudio { onMount() { if (!this.track) return; - this.track.addEventListener('canplay', this.onCanPlay.bind(this)); + + const handleTrackCanPlay = this.onCanPlay.bind(this); + this.track.addEventListener('canplay', handleTrackCanPlay); return () => { if (!this.track) return; - this.track.removeEventListener('canplay', this.onCanPlay.bind(this)); + this.track.removeEventListener('canplay', handleTrackCanPlay); this.offCanPlay(); }; } From f459b4c2e40ffbb0d5548f0bdbf62bb7f93f933c Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Fri, 4 Aug 2023 21:28:40 +0700 Subject: [PATCH 3/4] update move audio --- client/src/lib/assets/fx/localMove.wav | Bin 0 -> 60390 bytes client/src/lib/assets/fx/remoteMove.mp3 | Bin 0 -> 27084 bytes client/src/lib/game.svelte | 6 +++--- 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 client/src/lib/assets/fx/localMove.wav create mode 100644 client/src/lib/assets/fx/remoteMove.mp3 diff --git a/client/src/lib/assets/fx/localMove.wav b/client/src/lib/assets/fx/localMove.wav new file mode 100644 index 0000000000000000000000000000000000000000..a92759a85db5a9232577dd8b94dbfba5bb6d7257 GIT binary patch literal 60390 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 new GameAudio(src)); + const moveSounds = [sndLocalMove, sndRemoteMove].map(src => new GameAudio(src)); function playMoveSound() { const track = moveSounds[currentPlayer - 1]; From 8d1b73d1d725dc97fcc47e1cc49b50f52de8a0f5 Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Fri, 4 Aug 2023 21:29:27 +0700 Subject: [PATCH 4/4] move unused asset to static --- .../assets/fx => static/assets}/accomplished.wav | Bin .../{src/lib/assets/fx => static/assets}/jump.wav | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename client/{src/lib/assets/fx => static/assets}/accomplished.wav (100%) rename client/{src/lib/assets/fx => static/assets}/jump.wav (100%) diff --git a/client/src/lib/assets/fx/accomplished.wav b/client/static/assets/accomplished.wav similarity index 100% rename from client/src/lib/assets/fx/accomplished.wav rename to client/static/assets/accomplished.wav diff --git a/client/src/lib/assets/fx/jump.wav b/client/static/assets/jump.wav similarity index 100% rename from client/src/lib/assets/fx/jump.wav rename to client/static/assets/jump.wav