This commit is contained in:
Feast
2026-10-13 20:40:09 +08:00
commit 3237386e00
7 changed files with 2772 additions and 0 deletions
+89
View File
@@ -0,0 +1,89 @@
# 第 2 关开发文档:1-2 右手基准键 JKL;
对应规划:`分关难度规划.md` → 第 1 章 · 基准键入门 → **1-2**。
完全复用第 1 关引擎、页面、判定、音效与进度存储。**只改键位与文案。**
细则见 `开发文档-第1关.md`,本文只写差异。
---
## 1. 与 1-1 的差异
| 项 | 1-1 | 1-2 |
|----|-----|-----|
| 字符集 | `a s d f` | `j k l ;` |
| 手 | 左手 | 右手 |
| 键盘启用键 | ASDF | JKL; |
| 通关后解锁 | 1-2 | 1-3 |
其余全部相同:40 键、连续同一字符不超过 3 次、打错不前进、Backspace 无效、正确率 ≥ 90%(最多错 4 次)、不卡速度、强制显示键盘、卡通配色、打对/打错音效、`localStorage` 键名 `typing-progress-v1`。
---
## 2. 指法映射
与左手镜像,同色表示同一根手指类型:
| 键 | 手指 | 颜色(与 1-1 对应) |
|----|------|---------------------|
| `J` | 右手食指 | 蓝(同 F) |
| `K` | 右手中指 | 绿(同 D) |
| `L` | 右手无名指 | 黄(同 S) |
| `;` | 右手小指 | 橙(同 A) |
---
## 3. 关卡配置
```js
{
id: "1-2",
chapter: 1,
title: "右手基准键 JKL;",
charset: ["j", "k", "l", ";"],
length: 40,
allowSpace: false,
caseSensitive: true,
passAccuracy: 0.90,
passKpm: null,
unlockNext: "1-3",
showKeyboard: true,
generate: "random-from-charset",
playable: true
}
```
`;` 使用 `event.key === ";"`。Shift 产生的 `:` 视为错误。
---
## 4. 文案
| 位置 | 文案 |
|------|------|
| 选关卡片标题 | 1-2 右手基准键 |
| 选关卡片副标 | 只打 J K L ;,正确率 90% 即可通关 |
| 练习顶栏 | 第 2 关 · 右手基准键 JKL; |
| 指法提示 | 食指放 J,小指放分号。请看着屏幕,不要看键盘。 |
| 键盘下方 | 右手:食指 J · 中指 K · 无名指 L · 小指 ; |
| 通关 | 通关!右手基准键已经记住了。 |
| 未通关 | 再练一次。先求正确,再求速度。 |
| 解锁提示 | 已解锁 1-3 左右交替 |
---
## 5. 解锁
- 通关 1-1 后 1-2 可进入(已有逻辑)
- 通关 1-2 后写入 `unlocked: 1-3`;1-3 本关仍不实现玩法,仅解锁外观
- 重打失败不锁回
---
## 6. 验收(相对 1-1 增量)
- [ ] 题目仅含 `j k l ;`,长度 40
- [ ] 键盘仅 JKL; 高亮可用,其余禁用
- [ ] 通关 1-1 后可点进 1-2
- [ ] 正确率 ≥ 90% 通关并解锁 1-3
- [ ] 判定、音效、结算与 1-1 一致