Files
SoundGame/web/space/README.md
T

70 lines
4.1 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.
# 盲航(SPACE)
太空盲飞躲避,纯音频游戏。飞船自动前进,你只有一双耳朵。
## 玩法
- 陨石从四个方位逼近,听声辨位:
- **左 / 右声道** 的呼啸 = 左 / 右侧来袭
- **上方高频呼啸** = 上方来袭,**下方低频轰隆** = 下方来袭
- 呼啸响起的**同一瞬间**有超短方向呼喊("左!""右!"……),听到就能滑
- 警报声越响越急,陨石越近。**朝来袭方向的同向滑动**把陨石拨开
(左来左滑、右来右滑、上来上滑、下来下滑)——零推理,反射直达。
从呼啸响起到撞击点之间滑都有效(早滑不会被吞)。
- 被撞击 **3 次**坠毁(前 60 秒保护期内撞击不掉血,训练护盾吸收并语音讲解方位);
结算播报存活时间与躲避数分档整句;保护期结束后前 3 颗陨石保持保护期的慢节奏
作过渡,之后陨石越快越密(120 秒爬满)。
- 躲过 10 / 25 / 50 / 100 颗有里程碑播报;破纪录有"新纪录!"播报。
- **旁白播放中单击 = 跳过本句**(语音链跳下一句);**按住不放 = 旁白加速播放**
(引擎内置,不变调)。首局演练开场会提示一次。
- 状态音乐:对局 = 引擎轰鸣 BGM;菜单/坠毁结算 = 轻 pad(`bgm/menu`),状态切换即换曲。
## 教学流程(首次进入)
交互式演练 D0-D5:一句一练——旁白先说完,再来一颗 4.5 秒慢速演练陨石
(撞了不掉血),四个方向各练一次。做错不惩罚,当场重教;同一步失败 2 次
自动带过。旁白播放中**下滑 = 跳过演练**;第二次进游戏会询问"上滑重听演练,
单击直接出发"。
开局后**第 20 秒**引入单击加速、**第 45 秒**引入双击护盾(暂停刷怪各教一次,
8 秒没操作自动继续,机制之后照常生效;**教学仅首局出现**,第 2 局起机制开局即用、
不再重播)。**第 60 秒**保护期结束,难度开始爬坡。
## 手势
| 手势 | 作用 |
|---|---|
| 上 / 下 / 左 / 右滑 | **同向闪避**:把对应方位来的陨石拨开(呼啸响起到撞击点之间滑都有效) |
| 单击 | 旁白在播 = 跳过本句;否则 = 引擎短促加速 ~1.8s,增益期间冲过空隙(规避单击 300ms 判定延迟,持续增益非即时判定);第 20s 解锁(仅首局教学) |
| 双击 | 展开护盾 6s,挡下一次撞击;之后 15s 充能冷却,充能完毕有语音提示;未解锁/充能中双击会有即时语音应答("会自动充能,好了我会告诉你")+ 心跳震动;第 45s 解锁(仅首局教学) |
| 下滑 | **无下方陨石悬置时**呼出菜单(有下方陨石时下滑永远是闪避);**最近一次撞/躲判定后 0.8s 冷静期内的下滑一律按躲避意图处理,绝不开菜单**——高速段撞击瞬间的躲避不会误暂停 |
| 单击(结算后) | 跳过结算播报;播报结束后 = 再飞一次 |
| 下滑(结算后) | 回大厅 |
## 菜单
下滑呼出(模态,暂停刷怪)→ **单击循环切换选项**(播选项名)→ **双击确认** →
**上滑 = 帮助**(操作要点 + 设置引导),下滑或"继续飞行"关闭菜单。
选项:继续飞行 / 回大厅 / 重新听教学要点。
- **恢复缓冲**:「继续飞行」后前 3 颗陨石回到 4 秒慢节奏(与保护期结束后的
过渡同款机制),不再恢复即全速弹幕。
- **回大厅**:确认后先播"回大厅"确认句、停刷怪与 BGM,播完再跳转
(跳转期间单击可跳过确认句立即走)——不会落进无声死界面。
- **最后一命警告**:第 2 次撞击后"船体只剩最后一次"经呼喊接力紧随归因播出;
警告在播期间方向呼喊暂时让路(不被顶断);坠毁瞬间警告即刻静音,结算播报不叠播。
## 运行
```bash
python3 -m http.server 8106 --directory /home/ubuntu/SoundGame/web
# 浏览器打开 http://localhost:8106/space/ ,建议戴耳机
```
## 测试
```bash
/home/ubuntu/SoundGame/tools/node/bin/node test/playtest.mjs
# 无头试玩:虚拟时钟 + mock 浏览器环境,跑 13 号文档 §5/§7 全部关键路径与边界断言
```