The court keeps no score: the landing ring is gone
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
8307a05f79
commit
9fab26eec9
4 files changed
+6
-19
No files matched your search
@@ -1620,14 +1620,14 @@ export function render() {
|
||||
}
|
||||
drawPiles(false); // far-side piles (occluded by the net); near-side piles drawn after the net
|
||||
|
||||
// landing rings: white = incoming ball, yellow/red = your shot (red lands out)
|
||||
// landing ring: white = incoming ball (a PREDICTION, gone the moment the ball touches down —
|
||||
// the ring that lingered where the ball had already landed confused testers and is removed)
|
||||
if (G.phase === 'rally' && ball.active && ball.bounces === 0 && ball.lastHit === 'O') {
|
||||
const l = predictLanding();
|
||||
// the ring CONTRACTS toward touchdown (predictLanding's closed-form t), so the static marker
|
||||
// becomes a timing cue: wide while the ball is high, snapping to its true size as it arrives
|
||||
if (l) drawRing(l.x, l.z, 'rgba(255,255,255,0.85)', Math.min(2.2, 0.55 + l.t * 1.5));
|
||||
}
|
||||
if (G.outMarker) drawRing(G.outMarker.x, G.outMarker.z, G.outMarker.out ? UI.hot : UI.warm);
|
||||
// SLINGSHOT AIM: the shot's actual flight, drawn as a band through the air.
|
||||
// It replaces a chevron trail on the ground plus a draw meter across the bottom. The trail was
|
||||
// a RAY — it pointed at the target but said nothing about the ball going over the net — and the
|
||||
|
||||
Reference in new issue
Block a user