Brighter stands, a serve hint that shows the gesture, and a boy who walks
- The crowd sat in the dark, worst of all in splatter mode where you spend the game. Both crowd frames get an identical gamma lift (means 30/14/39 -> 42/22/56) and the rot tint drops 0.5 -> 0.26. The curve MUST stay identical across the two frames or the clap swap flashes brightness; _sheet_crowd1.png keeps the pre-lift original. - The splatter hint led with the tap when pulling is the whole gesture. It now reads PULL BACK TO AIM - RELEASE TO FIRE, and after 1.5s of sitting in the serve stance untouched a ghost thumb slides back while chevrons grow up-court on a loop. Pull back, shoot forward is an inverse relationship that a line of text cannot carry on its own. - The mop boy has three sheets instead of two: the push cycle now plays ONLY while he is stopped and working, a new carry sheet walks him upright with the mop shouldered, and the run sheet stays for the tennis-mode ball fetch. He was mopping thin air the entire way to the stain. Sheet note: frames 2 and 3 of the carry sheet merged (a mop handle bridging the gap), so it is cut at the true column gaps plus the thinnest column inside the merged pair, then common-scaled — same technique as the brute stride sheet. 26-game soak clean. Serve returns 133/150 = 88.7% +/-2.6%, 30 human-tapped points = 50 hits / 0 whiffs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
21b9dd53fa
commit
7dde5874ab
14 files changed
+67
-5
No files matched your search
@@ -798,6 +798,8 @@ export function update(dt) {
|
||||
crowd.cheer = Math.max(0, crowd.cheer - dt);
|
||||
G.idleT += dt;
|
||||
const w = BOUNCE_IDLE.tempo;
|
||||
// idle in the serve stance and not touching anything: after a beat, show the pull gesture
|
||||
if (G.phase === 'pretoss' && !G.aim) G.idleHintT += dt; else G.idleHintT = 0;
|
||||
if (G.phase === 'pretoss' && Math.sin(G.idleT * w) * Math.sin((G.idleT - dt) * w) < 0) pock(0.12, 420); // ball bounce
|
||||
if (G.phase === 'toss') { const sv = score.server === 'P' ? P : O; sv.pose = 'serve'; sv.poseT = 0; }
|
||||
|
||||
|
||||
Reference in new issue
Block a user