Files
SoundGame/web/rhythm
xsl 566241e05d feat(platform/P1): 配对码跨设备 + 认领打磨 + 键盘语音双套资产(两 agent 并行 + 集成收口)
配对码与认领(B):
- POST /api/pair/start|join:6 位码 10 分钟单次有效、仅存内存零泄露面、5 连错 per-IP 封锁 10 分钟;join=新设备档案按桶 LWW 并入老档案+token 改绑(复用 claim-merge);日志脱敏
- 大厅:生成配对码(speechSynthesis 逐位朗读+aria-live+重听)/从其他设备转入(one-time-code 输入框)/从本机移除/401 过期自愈引导/aria 补全/玩家名可听化
- api-smoke 12/12(配对全流程/频控/封锁/过期自愈/移除/digitsToCn)+ CDP 真浏览器 E2E 22/22

键盘语音双套资产(A,路线 a):
- 164 变体句(8 游戏 grep 实测,超出调研预估 153:含轻触/点两下/按住变体)×2 性别=328 生成 656 文件 36.9 分钟;触屏主资产零字节改动(PCM 逐样本比对后还原)
- 引擎 _candidates 三跳路由 key→gender→平铺(inputMode 跟随);缓存键 mode|gender|id;engine-input 新增 K9 路由断言(72 条)
- check_all_assets 增 key 列(两性别一致且 ⊆ 主集)8 游戏全绿;voice_text.json 增 __key__ 表;live control.mjs key 会话对照键盘措辞验收(集成)
- voice-ids 文档:8 游戏键盘变体小节由 KEY_LINES 程序化生成(与台词表逐字断言一致);补齐 storyline/escape/simon 三个历史缺失文档;design README 增 new8 索引
- mock 适配:playtest persona 加 maxTouchPoints=1 保持触屏链断言语义零改动

回归:12 套件全绿(8 playtest + guide 122 + engine-voice 19 + engine-input 72 + api-smoke 12/12)
同批入库:批次 2/3 已完稿设计文档(17-abyss/18-detective/19-cipher 全套,20-22 在途)
2026-09-10 00:43:23 +08:00
..

节拍行者(RHYTHM)

跟随领奏的节奏游戏,纯音频。系统奏一句,你在下一小节原样跟打—— 音要对,拍点也要对。建议戴耳机(有线优先,蓝牙延迟由 Good 窗口吸收)。

玩法

  • 每个乐句 = 领奏 1 小节 + 应答 1 小节:先听系统用打击乐器演奏 2-4 个音的节奏型,然后在下一小节的相同拍点用相同手势跟打。
  • 判定:Perfect ±150ms(乐器音 + 亮音 accent)/ Good ±350ms(只播乐器音)/ Miss(手势错或错过拍点:该音符不出声 + 一声闷镲 + 震动提醒)。 判定时刻按真实触摸时刻算(引擎 immediateTap 按下即发 tap;滑动/双击按 识别延迟补偿回触摸时刻)。Miss 不中断不掉血,歌照唱完。
  • 计分:Perfect=2 / Good=1 / Miss=0,评级 S≥95% / A≥85% / B≥70% / C。
  • 连击每 16 次有震动鼓励;乐句全 Perfect 有额外震动。
  • 3 首曲目解锁制:《启程》90 BPM → 《追风》105 BPM(反拍)→ 《星爆》120 BPM (切分密集)。曲目 n 拿到 B 级以上解锁 n+1,解锁状态本地保存并同步大厅。

手势 → 乐器音

手势 乐器音 声像
单击 底鼓 kick 中央低频
双击 军鼓 snare 中央偏上
左滑 闭合镲 hat 极左
右滑 开放镲 hat 极右
上滑 高通 tom 升调感
下滑 低通 tom 降调感
长按 —(非演奏手势) Miss 反馈音 + 震动提醒

你的每次出手都会实时奏响对应乐器音——跟对了,就能听到自己在演奏。

流程

  • 首次进入:一句欢迎后进入 5 步交互教学(单击 → 左右滑 → 上滑 → 下滑 → 三音带双击),做错有纠正语音(早了/晚了/不是这个手势),同一步失败 2 次 自动跳过;全程零通过时收尾播中性句(不夸"很好");教学中下滑 = 跳过 教学(教到下滑步、临近下滑音符时除外——那时它是演奏)。
  • 选曲(二周目起):左右滑切曲目(播曲目名/未解锁提示),单击开始, 上滑听规则,下滑回大厅。
  • 结算:播报评级(含准确率档位)与连击纪录;单击 = 再来一遍(同曲), 右滑 = 下一首(需已解锁),下滑 = 回大厅(先播"回大厅"确认再跳转)。

菜单

演奏中下滑呼出(模态暂停:谱面、判定、BGM 全部冻结,BGM 断点续播)→ 单击循环选项(继续演奏/回大厅)→ 双击确认 → 上滑 = 帮助(规则 + 设置引导)。菜单打开后 1 秒去抖独占期:期内不收任何手势(防演奏途中被 弹菜单时,已在路上的手势直接穿透菜单误确认)。 注意:下滑同时是"低通 tom"的演奏手势——自下滑音符的领奏响起到判定 死线之间,下滑永远是演奏;音符刚被判定死线拖死的短窗内(识别延迟、手势 还在路上)同样按演奏处理,绝不弹菜单;仅当没有悬置、临近或刚拖死的下滑 音符时才呼出菜单。

运行

python3 -m http.server 8105 --directory /home/ubuntu/SoundGame/web
# 浏览器打开 http://localhost:8105/rhythm/ ,建议戴耳机