Files
SoundGame/web/simon/README.md
T

44 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 音序回响(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. 复现错误:有机会则自动消耗重听(输入阶段双击=主动重听)→ 无机会则
播报成绩与新纪录 → 单击重开(重开跳过教学)。
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、封面、资产校验),非运行依赖