Thumb-scale draw meter, looser aim magnet, a bomb worth the tin
- The draw meter is a fixed bar across the bottom, ~90% of the width and 10px tall, with the kill notch on it. It was a 26x4 stub floating on the apron by the player's feet, which is nothing under a thumb at arm's length. The serve hint is suppressed while pulling since they share the slot. pullFull 95 -> 130: at 95 every pull maxed out by accident, so the meter never meant anything. - The aim magnet took the nearest body ALONG the lane, so a close shambler a little off-axis stole shots clearly aimed past it. It now picks the best ALIGNED body, with TUNE.aimTie of slack in which a nearer one still wins — a straight-ahead lane still eats the nearest body first, which is the settled feel. aimTie: 1 restores the old behaviour exactly, for A/B. - Bomb radius 2.5 -> 4.2 (2 kills -> 5 in a scattered ten-wave), a 120-particle eruption, a ring of thrown stains and a full-size pile. The blinding white frame is now a brief warm bloom — it was hiding the very gore it announced. - Rack tiles 22 -> 30 tall, and the touch band is padded above and runs to the screen edge below. At 22 logical px they were ~30 CSS px on a phone, well under the ~44 a thumb expects; now ~62. 26-game soak clean with heavy bomb use, arrays stay bounded. Serve returns 136/150 = 90.7% +/-2.4%, 30 human-tapped points = 50 hits / 0 whiffs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
55ddf5932e
commit
21b9dd53fa
7 files changed
+90
-35
No files matched your search
+19
@@ -211,6 +211,25 @@ Oliver rejected the procedural fakes on sight. The rule this round: **animation
|
||||
The wider net is a real physics change (balls between |x| 5.03 and 5.485 now catch the tape);
|
||||
serve returns measured 134/150 = 89.3% ±2.5% afterwards, bar still inside one sigma.
|
||||
|
||||
## Fourth feedback round — feel polish (2026-07-27)
|
||||
- **The draw meter is a fixed bar across the bottom** (~90% of W, 10px tall, `METER_Y()` in
|
||||
render.js), not a 26×4 stub floating on the apron by the player's feet. The serve hint is
|
||||
suppressed while `G.aim` is live because they share that slot. `TUNE.pullFull` 95 → 130: at 95
|
||||
every pull maxed out by accident and the meter meant nothing. Don't push much past ~150 — a pull
|
||||
that STARTS low on the screen still has to be completable before the finger runs off the glass.
|
||||
- **Aim magnet.** `flickTarget` used to take the nearest body *along* the lane, so a close shambler
|
||||
a little off-axis stole shots clearly aimed past it. It now picks the best-ALIGNED body
|
||||
(normalised offset within the cone), with `TUNE.aimTie` (0..1) of slack in which a nearer body
|
||||
still wins — so a straight-ahead lane still eats the nearest one first, which is the settled feel.
|
||||
`aimTie: 1` restores the old "nearest always wins" exactly, for A/B.
|
||||
- **Bomb**: radius 2.5 → 4.2 (2 kills → 5 in a scattered 10-wave), 120-particle eruption, a ring of
|
||||
thrown stains, size-4 pile. The white-out (`rgba(255,255,255,0.85)`) is now a brief warm bloom
|
||||
(`rgba(255,150,70,0.3)`) — the flash was hiding the very gore it announced.
|
||||
- **Rack touch target**: `rackH` 22 → 30 and `rackHit` pads the touch band by `RACK_GRAB` above and
|
||||
runs to the screen edge below. 22 logical px is ~30 CSS px on a phone, well under the ~44 a thumb
|
||||
expects; it's now ~62. Rack text is positioned proportionally (`g.h * 0.33` / `0.72`) so the tile
|
||||
height stays a free knob.
|
||||
|
||||
## Gotchas learned the hard way
|
||||
- Browser-pane verification: python http.server sends no cache headers, so edited ES
|
||||
modules often load STALE even after location.reload(). Reliable fix: preview_stop +
|
||||
|
||||
Reference in new issue
Block a user