卡片横滑事务

一张卡片,不是一条桌面列表
手指横向拖动只改变两张相邻卡片的 clip 与 offset;跨过阈值后 release 才切换索引。未跨阈值则回拉当前项。
为什么独立于轨道拖动
SHOP 同一屏有内环和底部卡片两个可拖区域。pointer down 必须先通过几何命中确定唯一所有者;一旦归属卡片,后续移动不会因为经过内环而转成轨道操作,反之亦然。
Tap fallback
如果手势移动很小,release 可以回退为卡片点击,执行购买或装备;一旦达到 12 px 取消锁,就永远不能回退成 tap,即使手指后来又回到起点。
回拉保护
拖动越界会增加阻尼,视觉可以略微越过第一/最后一项,但索引不循环。取消、lost capture 或切页时 offset 回到 0,不把半张卡片写入状态。
资产与绘制
卡片使用静态 48×48 图标及 active/owned 双态;边框、标题、成本、增量和状态旗由代码/bitmap 字体绘制。连续滑动只重绘卡片裁剪区,不影响上方造星队世界。
