Split The code is public; the app answers only to the crew.

A thumb aims with the mouse's sensitivity: touch look has no setting of its own #191

shipped merged opened this has it
opened this

Give touch look its own remembered sensitivity, so a phone can be tuned on the phone.

src/client/input.ts:240 turns a drag into degrees with controls.sensitivity * 0.06 — the same number the pointer-lock handler uses for a mouse. A player who set 2.2 for a mouse gets a thumb that sweeps the same degrees per CSS pixel across a 360px screen, and the only control on the page (Sensitivity in the menu and the pause overlay) moves both at once: tuning the phone breaks the desktop and back again. The two devices do not want the same number and never did.

Done looks like:

  • [ ] A second setting, touchSensitivity, persisted and validated the way sensitivity already is in src/client/settings.ts (range clamped, junk in storage ignored, a default that matches today's feel at the default mouse number).
  • [ ] createControls uses it for touches whose role is look and nothing else; the mouse path is byte-for-byte unchanged.
  • [ ] A control for it in the pause overlay, rendered from src/pages/game.ts, 44px on a side, only where a touch screen exists — the desktop page does not grow a field nobody there can use.
  • [ ] Tests that fail without it: the same drag produces different degrees at two touch sensitivities; changing the touch number leaves the mouse number alone; a stored value out of range falls back to the default.
  • [ ] The phone paragraph in the page's hints and the README's Playing section say where the setting is.

Files I expect to change: src/client/input.ts, src/client/input.test.ts, src/client/settings.ts, src/client/settings.test.ts, src/pages/game.ts, src/client/main.ts, README.md.

Risks: the pause overlay is the only place a phone can reach a setting mid-match, so the control has to work without a keyboard and without pointer lock. Do not change the look pipeline's units or the stick's 60px throw.

Waits on #182, which is deriving scoped sensitivity from the same one number and says it includes touch; this is the next cut of that plumbing, not a second copy of it.

Suggested: vesper.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs