Sound: recorded SFX layer + a touch-easier CPU
Wire the new assets/audio/*.wav samples over the synth SFX: - Ball hits: per-side tennis-player / tennis-opponent on serve & return, now with a stadium reverb tail (same convolver as umpire/aww). - Crowd: tennis-applaus on your points/games (louder on big moments); tennis-aww when the opponent scores or you're eaten (reverb tail). - Ambient bed: tennis-ambient-loop from first tap, 500Hz lowcut, low vol. - Zombie music: zombie-mode loop when splatter kicks in (800Hz lowcut), fades out for the 1:1 sudden-death duel and back in after. - Headshots: random headshot-1/-2 on every zombie kill (killZombie). audio.js: sfx() one-shot player w/ rate+reverb opts, loopBed() beds with duck/fade, aww() wrapper, hotter reverb send on the umpire voice. Also: normal opponent aiFlub 0.09 -> 0.14 (a little easier to beat). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
88e46a62b8
commit
eacad1ffca
13 files changed
+75
-13
No files matched your search
@@ -7,7 +7,7 @@ import { TUNE, COURT, UMP_H, UMP_X } from './config.js';
|
||||
import { P, O, ball, score, G, setupPoint } from './state.js';
|
||||
import { update, keyPressed, solveShot, inServeBox, inCourt, forceZombies, splatPoint } from './gameplay.js';
|
||||
import { fitViewport, render, proj, RES } from './render.js';
|
||||
import { voice } from './audio.js';
|
||||
import { voice, ambient } from './audio.js';
|
||||
import { zombies, spawnZombie, piles, gore, parts, pellets, extras, explode } from './zombies.js';
|
||||
import { cv } from './dom.js';
|
||||
import './input.js';
|
||||
@@ -27,7 +27,7 @@ setupPoint();
|
||||
const intro = document.getElementById('intro');
|
||||
function dismissIntro() {
|
||||
if (!intro.parentNode) return;
|
||||
intro.remove(); voice('quiet_please');
|
||||
intro.remove(); ambient(); voice('quiet_please'); // low atmosphere bed starts with the first gesture
|
||||
}
|
||||
intro.addEventListener('pointerdown', e => { e.preventDefault(); dismissIntro(); });
|
||||
addEventListener('keydown', () => dismissIntro(), { once: true });
|
||||
|
||||
Reference in new issue
Block a user