b1f8ea3240a635101002ea7feb88d16c18ff88fb
Four new frames (p_pull1..4) turn the slingshot drag into the serve's wind-up: racket above the head, behind the head, behind the back, fully coiled, picked off pullFrac — the same 0..1 that sets the shot's power — so the gesture and the man are one movement and the release snaps to the smash. The two bounce frames are one drawing now. p_bounce2 is p_bounce with the free arm sheared up 12px and nothing else touched, so the swap cannot flicker, and it follows the ball instead of its rising phase; BOUNCE_IDLE was re-measured off the sprite so the ball tops out under the palm. p_toss had the tossed ball drawn into it — cut, canvas height kept, because the game scales him off img.height. The runner: hip centres sat -2.0/+7.1/-6.0/-0.1 px off the sprite centre, a 13px lateral jump at 12 frames a second, and Oliver's diagnosis was right that all four frames leaned the same way and lifted the same leg. Frames 3 and 4 mirrored, all four padded to one width with the hip on the centre line. assets/_derive.py holds the three derivations, since "the same drawing with one small difference" is the one thing the generator cannot draw. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Languages
JavaScript
75.2%
Python
15.8%
HTML
7.3%
Shell
1.4%
Swift
0.2%