P11.3: glossier candy gem & selection feel (sx / iOS)
Make the selection highlight read as glossy candy without new art and without disturbing the idle-rest invariant. board_view's render_selection layers a soft outward glow (two concentric stroked rings — the renderer has no blur), a warm wash, a bright rim doubled by a thin inner highlight for a glassy edge, and a wet sheen that rides the selected gem's live pose. Every layer is a rect/overlay (issue 0002 forbids a draw-time gem-texture tint). The gloss is selection-only: render_selection runs solely when a cell is selected, so the resting board (no selection) is byte-identical to before and the t==0 idle pose stays exactly the static sprite (locked by tests/gem_pose). The selection-pop motion still comes from gem_anim; no board / score / move state changes and input stays gated by BoardAnim.active. Updated goldens/p6_select.png; README documents the P11.3 selection gloss and its reproduce commands (reusing the P6.3 M3TE_SELECT + M3TE_ANIM_TIME hooks).
This commit is contained in:
25
README.md
25
README.md
@@ -172,3 +172,28 @@ env SIMCTL_CHILD_M3TE_FX=11 SIMCTL_CHILD_M3TE_ANIM_TIME=3.0 \
|
||||
|
||||
The combo emphasis is purely visual and self-pruning: it never gates input
|
||||
(`BoardAnim.active` owns gating) and never touches board / score / move state.
|
||||
|
||||
### Glossier gem & selection feel (P11.3)
|
||||
|
||||
The selection highlight (`board_view.sx` `render_selection`) is a candy-glossier
|
||||
overlay: two concentric stroked rings fake a soft outward glow, a warm wash tints
|
||||
the cell, a bright rim is doubled by a thin inner highlight for a glassy edge, and
|
||||
a wet sheen rides the selected gem's live pose. The engine can't tint a texture at
|
||||
draw time (issue 0002), so every layer is a rect/overlay — never a gem-texture
|
||||
tint. The selection-pop motion still comes from `gem_anim`, so the **t==0 idle
|
||||
pose is byte-identical to the static sprite** (locked by `tests/gem_pose.sx`); the
|
||||
gloss is selection-only, so the resting board (no selection) is unchanged.
|
||||
|
||||
Capture it with the same P6.3 hooks — no new env var:
|
||||
|
||||
```bash
|
||||
# Glossy candy selection on cell (3,3), pinned mid-pop: goldens/p6_select.png
|
||||
env SIMCTL_CHILD_M3TE_ANIM_TIME=0.17 SIMCTL_CHILD_M3TE_SELECT=27 \
|
||||
xcrun simctl launch booted co.swipelab.m3te
|
||||
# Same selection at exact rest (no pop) — isolates the overlay:
|
||||
env SIMCTL_CHILD_M3TE_ANIM_TIME=0 SIMCTL_CHILD_M3TE_SELECT=27 \
|
||||
xcrun simctl launch booted co.swipelab.m3te
|
||||
```
|
||||
|
||||
The selection gloss is purely visual: it never gates input (`BoardAnim.active`
|
||||
owns gating) and never touches board / score / move state.
|
||||
|
||||
Reference in New Issue
Block a user