Files
SoundGame/web/simon
xsl ee9d7efe57 feat(playbook): 26 号交互手册首批落地——storyline/escape/simon 全面重构 + 引擎六模块
按 docs/design/26-audio-interaction-playbook.md 重构三款游戏(对白重写 + 双性别语音重生成 580 文件)。

引擎层(web/engine/,其余 12 款游戏零改动):
- floor.js 发言权管理器:SPEAKING/YOUR_TURN/BUSY/ACTION 四态、交接提示音、
  等待声(220/330Hz 嘟-嘟,20s 后放缓)、跨链音乐压低(audio.js holdDuck)
- receipts.js 输入回执三件套(ok/invalid/busy,100ms 内,原则 4)
- confusion.js 迷茫检测(乱点/无效/静默信号 → 三级接管,§4.5)
- hints.js 等待点 + 三档提示(full→short→提示音,30s 台账跨点去重,原则 9)
- novice.js 手势解锁阶梯(up/down/doubletap 跨局持久,§4.3)
- pipeline.js 输入管道(回执收口、防连点 400ms、双击折算、explainOnce)

游戏层:
- storyline R3:开场 71.7s 规则念白 → 3 秒内动手;双击=重播(反模式5)废除;
  抉择点三档提示+主动重听;断点存档复述(§4.12)
- escape R3:单击=检查+使用合并(双击用法废除);长按=我在哪(四向玩法裁定);
  撞墙归因每方向一次(原则 7);迷茫 L2 缩小/L3 演示;坐标存档续玩
- simon R3:新手三音色,按实力渐进解锁(+up/down/dt);失败表替代机会账
  (归因 2s 内→免费重听→放慢→结算,原则 15);播放期手势=busy 回执

测试:三款 playtest 重写(含 §6.2 乱点机器人:无声操作/被动重复/打断失败全 0,
首操作 ~2s);guide.test 改为 Guide 层单测+rhythm/space 段。全部通过
(38+33+22+72+19+35 断言)。设计单见 docs/design/26-apply-*.md。
2026-10-01 08:11:12 +08:00
..

音序回响(Simon)

音频版西蒙记忆游戏。屏幕只有封面,全靠耳朵:系统用六种特征音播放一段 手势序列,玩家按同样顺序复现手势。序列从 2 个音开始,每轮 +1,播放速度 逐轮略微加快;复现错误即游戏结束,播报「坚持了 X 轮」与本局内历史最高 (数字用 TTS 片段拼接),单击屏幕重开(重开跳过教学)。

手势 → 音色映射

手势 音色
上滑 上行琶音(C5-E5-G5-C6 明亮弹拨)
下滑 下行低音(A2→A1 浑厚贝斯)
左滑 E4 弹拨,声像极左
右滑 G4 弹拨,声像极右
单击 短促底鼓
双击 两声连响(木琴质感)

流程

  1. 启动遮罩「轻触开始」解锁音频(游玩全程无 BGM;仅结算/菜单挂 bgm/menu 轻垫乐,volume 0.3)。
  2. 开场教学(t0 附近插播一次 skip_hint):语音依次教 6 个手势音,教一个练一个; 教学期下滑=跳过整个教学(正练下滑手势时除外)。
  3. 正式对局:报「第 N 轮」→ 播放序列(此阶段手势忽略)→ 「轮到你了」 (仅第 1 轮)→ 玩家复现;每个手势即时回声放对应音色。
  4. 全部复现正确:答对反馈,进入下一轮(序列尾部 +1,速度加快,第 12 轮起 420ms 下限)。
  5. 复现错误:有机会则自动消耗重听(输入阶段上滑=主动重听——免费重听每局 2 次 先用,不耗真机会;免费用尽后重听才扣机会)→ 无机会则 播报成绩与新纪录 → 单击重开(重开跳过教学)。
  6. 旁白播放中单击=跳过当前句(skipVoice,链播继续);无语音时单击=各阶段原语义。

测试

test/playtest.mjs — Node 无头试玩仿真(mock 浏览器环境 + 虚拟时钟 + 种子随机), 覆盖 docs/design/13-playtest-criteria.md §3 全部关键路径与边界断言: tools/node/bin/node web/simon/test/playtest.mjs

目录

  • game.js — 游戏逻辑(继承引擎 Game,语音链用 onComplete 串行)
  • test/playtest.mjs — 无头试玩测试(见上)
  • cover.png — 1080x1920 封面
  • audio/{bgm,voice,sfx}/ — 全部双格式(.ogg + .m4a,iOS 回退)
  • gen/ — 资产生成脚本(SFX 合成、TTS、封面、资产校验),非运行依赖