Let the ball follow the mirror, and stop the serve shrinking her
Four things Oliver caught on the phone. The screen title is the ANNOUNCEMENT face now. A menu heading is a thing that shouts, the same register the canvas gives SET and CHAPTER — it was wearing the HUD font, which is the voice for scores and key hints. Bangers carries its own weight, so it takes size and air instead of Silkscreen's letter-spacing, plus the padding under it he asked for. Her toss and smash were shrinking the whole woman. The slice anchors frame 0 to 224 px, and frame 0 was the toss — whose arm is straight up, so the BODY got squeezed to make room for it. This is the trap already written down for the raised racket; it just moved to a different sheet. Re-sliced the retained sheet at the men's toss height (250) instead, so toss/smash/pull come out 250/293/191 against his 250/320/213 and her body matches her own idle again. No re-roll. The pre-serve ball did not follow the MIRROR. drawChar flips the whole sprite when a server faces left, so dodging during the bounce swapped his hands over and left the ball hanging out by the racket — one `* sv.facing` on the offset. It was wrong in the men's world the whole time, it just took a second body standing next to it before anyone saw it. And she reaches further out and higher than he does, so BOUNCE_IDLE's pair is overridable per tour now (0.46/0.78 against his 0.36/0.68). Measured off the drawn hand by eye, which is the only way those two numbers have ever been set. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
14a1e5d261
commit
0ca43bf68f
7 files changed
+24
-10
No files matched your search
@@ -62,7 +62,7 @@ const tourList = document.getElementById('tours');
|
||||
for (const t of TOURS) {
|
||||
const b = document.createElement('button');
|
||||
b.className = t.id === pickedTour ? 'on' : '';
|
||||
b.innerHTML = `<img src="assets/${t.tile}.png?v=83" alt=""><b>${t.name}</b>`;
|
||||
b.innerHTML = `<img src="assets/${t.tile}.png?v=84" alt=""><b>${t.name}</b>`;
|
||||
b.addEventListener('click', () => {
|
||||
pickedTour = t.id;
|
||||
for (const el of tourList.children) el.classList.toggle('on', el === b);
|
||||
@@ -75,7 +75,7 @@ const courtList = document.getElementById('courtList');
|
||||
for (const c of COURTS) {
|
||||
const b = document.createElement('button');
|
||||
b.className = 'court' + (c.id === picked ? ' on' : ''); // your last court comes up pre-picked
|
||||
b.innerHTML = `<img src="assets/${c.tile}.png?v=83" alt=""><span><b>${c.name}</b><i>${c.sub}</i></span>`;
|
||||
b.innerHTML = `<img src="assets/${c.tile}.png?v=84" alt=""><span><b>${c.name}</b><i>${c.sub}</i></span>`;
|
||||
// Tapping a tile SELECTS it and nothing more. It used to start the match on the spot, which gave
|
||||
// you no way to look at the three of them and no way back out of the screen.
|
||||
b.addEventListener('click', () => {
|
||||
|
||||
Reference in new issue
Block a user