Time flicks from touch-down, log the opponent's shots, save early half-volleys
From Oliver's first swing log (cup vs the Brute): 13 of 22 hits were perfect, 9 badly early or late — mostly forward-right flicks — and the weak balls became seven "passed you". Every hit was a flick, and flicks still swung only at the flickMin crossing while the timed ring says "touch now": they are now timed from touch-down too (capped at flickLead 0.1 s). The log gains its other half: a THEM line per opponent shot (kind, pace, where it lands relative to you, coming in) and "never swung" judged per incoming ball instead of once a point. And an early swing on a low ball digs it out as a capped half-volley instead of whiffing. v366. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d110e12321
commit
5bbde720ad
7 files changed
+66
-9
No files matched your search
+7
-2
@@ -207,7 +207,12 @@ cv.addEventListener('touchmove', e => {
|
||||
? { ax: Math.abs(dx) > dist * 0.38 ? Math.sign(dx) : 0,
|
||||
az: Math.abs(dy) > dist * 0.38 ? Math.sign(dy) : 0,
|
||||
fx: dx / dist, fy: dy / dist, mag: dist } : null;
|
||||
if (G.swipe && !stick.swung && G.phase === 'rally') { stick.swung = true; keyPressed('Space'); }
|
||||
// ...timed, like the tap, from the moment the finger LANDED (gameplay.keyPressed's `lead`): the
|
||||
// timed gold ring means "touch now", and a flick only swings once it has travelled flickMin.
|
||||
// Capped at flickLead, so a slow drag still has a window to swing into (the left-flick lesson).
|
||||
if (G.swipe && !stick.swung && G.phase === 'rally') {
|
||||
stick.swung = true; keyPressed('Space', Math.min(TUNE.flickLead, (performance.now() - stick.t0) / 1000), true);
|
||||
}
|
||||
}
|
||||
}, { passive: false });
|
||||
|
||||
@@ -235,7 +240,7 @@ const endTouch = e => {
|
||||
az: Math.abs(dy) > dist * 0.38 ? Math.sign(dy) : 0,
|
||||
fx: dx / dist, fy: dy / dist, mag: dist, // raw vector: splatter free-aim
|
||||
t: performance.now() };
|
||||
if (!stick.swung) keyPressed('Space'); // the crossing already swung — never twice per gesture
|
||||
if (!stick.swung) keyPressed('Space', Math.min(TUNE.flickLead, dt / 1000), true); // the crossing already swung — never twice per gesture
|
||||
}
|
||||
stick = null; touchAxis.x = 0; touchAxis.z = 0; G.swipe = null;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user