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:
1 parent
f3d6f71144
commit
d5a069a90c
3 files changed
+22
-3
No files matched your search
+10
-2
@@ -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
|
||||
|
||||
Reference in new issue
Block a user