Tap Burst

8 FRAMES @ 24 FPS
Yellow establishes impact, red carries impulse, blue preserves structure and the paper-white tail dissipates. Sparse late material is authored content, not an empty frame to crop.
Trigger and commit
- Trigger: pointer down inside the SEED safe region.
- Candidate: total travel stays below 12 px; crossing it latches cancellation.
- Commit: pointer up calls
coreAction()once. - Presentation: after logic returns gain, sync, combo and heat, play FX, particles, callout and audio.
Assets
| Asset | Size | Rate | Layer |
|---|---|---|---|
fx_tap_0..7.png | 128×128 | 24 FPS | Under the Seed |
core_idle/charge/press | 160×160 | Event state | Primary object |
| ASCII bitmap | 5×7 | Event | +VALUE callout |
| Code particles | 1–2 px / glyph | 30 FPS | Top layer |
Lucky difference
Normal taps use yellow/red/blue particles. Lucky taps add paper white and cyan, increase roughly 9 particles to 18, and use the success callout tone. Rendering receives the logical result and never re-evaluates the angle itself.
Reduced motion
Reduced mode displays only the first frame for 140 ms and limits particles to 3–5. Economy, luck and heat are unchanged. Ambient and launch/restart sequences reject the input entirely.
ESP32 mapping
Firmware GameEffects reads the packed source frames. Its dirty region is the union of current and previous bounds, clearing sparse trails without forcing a full-screen refresh.
