The auto-run owns the legs in a rally, so the drag lets go of them

On touch, a drag in zombie tennis and classic still walked the player — and
that was not a harmless second option. A manual axis suppresses the assist, so
holding a drag traded a full-speed run to the intercept point for a 0.35x
shuffle aimed wherever the thumb went instead of where the ball will be.
Walking was strictly worse than standing still, which is most of "i tend to not
be able to reach the balls".

touchAxis is no longer written under rallyFeel. The drag keeps its one rally
meaning — released quickly it is the aimed swing — keys stay a deliberate
desktop override, and gore keeps its drag-walk, where the assist recovers depth
only and holding your own lane is the entire point.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Opus 5 committed 2026-08-18 07:09:19 +02:00
1 parent f3d6f71144
commit d5a069a90c
3 files changed
+22 -3

No files matched your search

+11
View File
@@ -510,6 +510,17 @@ flickReach)` ≈ 0.7 of a full swipe, the worst mistiming in the game cannot put
above it the old risk curve is untouched. The tested contract from the pass before this one still
holds — a perfectly timed flick never sails, a badly timed full one can.
**THE AUTO-RUN OWNS THE LEGS, so the drag does not** (2026-08-18, Oliver: *"could it be that when
playing touch on mobile zombie tennis and tennis i am still able to manually move by dragging? in
autorun this must be disabled"* — it could, and it was). It was not a harmless second option: a
manual axis SUPPRESSES the assist (the `!mx && !mz` gate in the movement block), so holding a drag
traded a full-speed run to the intercept point for a `0.35x` shuffle aimed at wherever the thumb
went rather than at where the ball will be. Walking was strictly worse than standing still, which is
most of *"i tend to not be able to reach the balls"*. `input.js` stops writing `touchAxis` under
`rallyFeel()`; the drag keeps its one rally meaning (release it quickly and it is the aimed swing),
keys stay a deliberate desktop override, and GORE keeps its drag-walk — there the assist recovers
depth only and holding your own artillery lane is the point.
**THE AIM IS DRAWN WHILE THE THUMB IS STILL MOVING.** Oliver asked to *"visualize the strength of my
flick at flick-time"*, and he was asking for the half the placement ring cannot give: the ring is a
RECEIPT, it arrives with the ball already gone. `G.swipe` (set by input.js during the drag, cleared
+1 -1
View File
@@ -659,6 +659,6 @@ if (location.hostname !== 'splatter-tennis.wuwi.one') {
</div>
</div>
</div>
<script type="module" src="src/main.js?v=281"></script>
<script type="module" src="src/main.js?v=282"></script>
</body>
</html>
+10 -2
View File
@@ -181,8 +181,16 @@ cv.addEventListener('touchmove', e => {
}
const r = stick.r;
steerPX = (t.clientX - r.left) / r.width * 2 - 1;
touchAxis.x = Math.abs(dx) > DEAD ? Math.sign(dx) : 0;
touchAxis.z = Math.abs(dy) > DEAD ? Math.sign(dy) : 0;
// THE AUTO-RUN OWNS THE LEGS IN A RALLY, so the drag does not. Walking here was strictly worse
// than standing still: a manual axis SUPPRESSES the assist (the `!mx && !mz` gate in update),
// so holding a drag traded a full-speed run to the intercept point for a 0.35x shuffle that
// goes wherever your thumb went rather than where the ball will be — which is most of "i tend
// to not be able to reach the balls". The gesture keeps its one rally meaning: let go quickly
// and it is the aimed swing. Keys are untouched; a held arrow on a desktop is still an override.
// Gore keeps its drag-walk — there the assist only recovers depth and you hold your own lane.
const legs = !rallyFeel();
touchAxis.x = legs && Math.abs(dx) > DEAD ? Math.sign(dx) : 0;
touchAxis.z = legs && Math.abs(dy) > DEAD ? Math.sign(dy) : 0;
// THE FLICK, SHOWN WHILE IT IS STILL A FLICK. The placement ring is a receipt — it arrives with
// the ball already gone. This is the same aim BEFORE the release, which is the half the player
// could not see: how much width the length of the swipe is buying, and whether that is already