Files
NumberSwipe_New/docs/2026-10-21_美术设计-明亮教具室-report.md
T

753 lines
53 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.
# 数字一笔画 · 明亮教具室完整美术与 UI 设计报告
**版本:1.0 设计提案|日期:2026-10-21|设计基准:375 × 812 逻辑单位|平台:手机竖屏小游戏、Android、iOS**
**核心定义:把路径推理表现为一套明亮、精确、可触摸的彩色教具。暖黄背景负责亲和,奶油舞台负责聚焦,紫色积木负责连贯,短反馈负责愉悦。**
本报告以用户选定的“明亮教具室”概念图为方向,结合当前仓库规则与 200 关微信包制作。文中参数是采用新风格时的设计规范,不是现有程序已实现的描述;本次交付报告、设计令牌与审计数据,不修改游戏规则、正式渲染、关卡或发布包。
“必须”表示本方案的验收要求;“建议”表示首轮实现起点;“待验证”表示需要真机或用户测试。尺寸都是逻辑单位,不能直接当作设备物理像素、Android dp 或 iOS pt。
## 阅读导航与配套文件
| 读者 | 优先阅读 | 需要作出的决定 |
|---|---|---|
| 制作人与主美 | 第 1–4、21、25 节 | 风格、产品气质、资源范围、实施顺序 |
| UI 设计师 | 第 5–9、14–19 节 | 颜色、文字、组件、页面、适配 |
| 棋盘与特效美术 | 第 10–13、20 节 | 拼块、规则符号、状态、动效、音效 |
| 开发与测试 | 第 2、9–13、22–26 节 | 分支差异、状态优先级、绘制顺序、验收 |
配套:
- [选定概念图](design/brain-academy-concepts/bright-classroom.png):风格参考;不是生产资源切图。
- [结构化设计令牌](design/bright-classroom/tokens.json):颜色、字体、尺寸、圆角、阴影、动效。
- [静态色对审计](design/bright-classroom/contrast-audit.json):文字与关键图形的对比度。
- [项目内容审计](design/bright-classroom/project-audit.json):200 关几何、机制、规模与来源文件哈希。
- [复核脚本](design/bright-classroom/audit-design.mjs):在仓库根目录运行 `node docs/design/bright-classroom/audit-design.mjs`。
![用户选定的明亮教具室概念图](design/brain-academy-concepts/bright-classroom.png)
## 1. 风格定位:亲和的逻辑玩具
### 1.1 设计关键词
明亮、圆润、整洁、轻厚度、明确回应、全年龄。它比原“柔和积木”增加背景色、舞台层次与少量图形活力,同时保持思考阶段安静。
玩家感受到的是“拿起一套有品质的逻辑玩具”。教具是材质与组织方式,不意味着学科课程、考试、儿童专属产品或智商评估。
### 1.2 从参考作品借鉴什么
《灵活脑学校 一起伸展大脑》的官方画面把明亮大底、浅色答题区、简化实体物件、清楚数字与状态反馈组合在一起。本方案借鉴这种信息分层与触感;原创制作标题、图标、几何纹样、块体与音效,不使用其角色和界面资产。[任天堂官方画面与介绍](https://www.nintendo.com/hk/switch/azlsa/)
| 参考中的设计手法 | 本项目的转译 | 执行边界 |
|---|---|---|
| 彩色背景与浅色题目区 | 暖黄底与奶油棋盘舞台 | 舞台内不铺纹样 |
| 简化的实体教具 | 正俯视、轻厚度的积木 | 不用透视改变邻接 |
| 鲜明的数字与选中状态 | 深色线索、白色路径数字、独立当前位置 | 规则信息不能只靠色相 |
| 声音和动作回应答题 | 落格、撤销、条件命中与通关的短反馈 | 不增加分数、倒计时或强制节拍 |
| 成体系的亲和感 | 统一标题、按钮、图标、章节小标 | 首版不增加角色养成系统 |
### 1.3 概念图转生产时的四个修正
1. 大标题主要用于首页;正式对局缩为紧凑关号与章节信息,增加棋盘空间。
2. 图中的珊瑚色白字标签改为深棕字;当前珊瑚色上白字对比度不足。
3. 块体减少表面噪声与大面积渐变,保留倒角、底沿和短阴影;数字必须像清楚的印字。
4. 概念图的“重开/补数字/指路”不能直接替换当前微信包的“重开/撤销/指路”。按钮由实际版本提供。
## 2. 项目玩法与版本边界
### 2.1 统一产品前提
手机竖屏,单机路径推理;每块走一次,数字对应精确的访问步号。核心体验是观察、推理、绘制与修正。页面不引入倒计时、体力、答题分数或 IQ 判断。松手后可继续,视觉不能暗示必须一次不抬手完成。
### 2.2 当前仓库存在的三类实现
| 实现 | 核对来源 | 本方案适配范围 | 不可混写的行为 |
|---|---|---|---|
| 数字原型 | `modes/01-number-stroke` | 矩形、大块、异形、数字、奇偶、补数 | 可点已走格截断;补数与原始线索分开 |
| 六边原型 | `modes/03-hex-walls` | 六邻接、静态边墙、实验转墙 | 转墙按步号转 120°,不等于节奏门 |
| 200 关微信包 | `wechat-campaign-200-r2` | 方形、大块异形、六边、墙、通道、双色交替、奇偶、节奏门 | 逐格回退、撤销、分段指路、手动下一关 |
当前 200 关包共有 20 章、200 关,方形 49 关、大块/异形几何 113 关、六边 38 关;规模为 3–36 个逻辑块。机制出现次数可重叠:墙 133、通道 97、双色交替 74、奇偶 68、节奏门 69。上述为本次读取数据后的统计,不把旧 README 的原型关数当作当前交付量。
当前关卡没有使用 `relations`、`orderChains`、`windows`、`gates`。规则模块虽有对应能力,本报告不为这些未使用字段增加首版图标、教学和页面。实验转墙只在六边原型单独适配。
### 2.3 规则与表现的职责
合法邻接、通道成立、门是否开启、线索冲突、提示段落、通关都由规则状态决定。美术只消费结果,不用材质、动画进度或屏幕碰撞代替逻辑。
例如门正在播放开启动画,玩家能否经过仍以逻辑状态为准;快速画两步也必须按两次状态变化绘制最终结果。
## 3. 注意力层级与丰富度控制
从高到低为:**规则几何与线索 → 当前路径与操作状态 → 必要导航与提示 → 材质 → 装饰。**
| 元素 | 思考阶段 | 操作阶段 | 完成阶段 |
|---|---|---|---|
| 棋盘 | 全部清晰、无循环浮动 | 局部回应 | 路径短扫光后稳定 |
| 背景纹样 | 静止、低对比 | 不响应手指 | 可有一次极轻的强调 |
| 标题与标签 | 稳定 | 不缩放、不跳动 | 简短祝贺替换状态文字 |
| 功能按钮 | 位置固定 | 局部按压 | 原位替换下一关按钮 |
| 粒子 | 无 | 无 | 最多少量,出现在棋盘外 |
装饰不以全屏固定面积百分比验收。首版建议全屏仅保留 3–5 个大号、低对比度、裁切在边缘的轮廓图形;棋盘、信息栏与底部按钮周围至少留出 12 单位净区。
复杂关自动降低装饰:7 列或包含三种以上机制时,背景纹样隐藏,舞台阴影减半,标题使用紧凑模式。装饰变化不参与规则。
## 4. 视觉构成与品牌元素
### 4.1 三层结构
外层是平静的暖黄纸板背景,中层是奶油色教具垫,内层是清楚的拼块。整张棋盘是主要物体,不再给每条提示、每段文案套一张卡片。
背景可以有极浅的上下色差,但不使用真实桌面、教室透视、黑板墙、文具堆或复杂场景。无需角色也能成立。
### 4.2 标题与标识
“数字一笔”为工作显示名。首页使用原创圆润字形标识,可有米白描边与 2–3 单位下沿,珊瑚与紫色分配到字组;不逐字随机换色。正式对局不重复摆放大 Logo。
首版不增加吉祥物。未来需要角色时,先放首页、教学末尾和章节结束,避开棋盘。不要让角色表情承担错误与通关的唯一信息。
### 4.3 背景图形家族
只使用圆、圆角方框、三角外轮廓和短弧线。线宽 2–3,尺寸 36–88,统一 `pattern` 色的 20%–35% 不透明度;此参数是装饰起点,需按实际合成画面复核。禁止使用箭头、数字、“奇/偶”、墙条纹、门缝作为背景装饰。
## 5. 完整配色系统
颜色以不透明 sRGB 值为准;透明图层、渐变与实际贴图另作合成校验。配色语义优先于章节美化。
### 5.1 背景、表面与积木
| 令牌 | 色值 | 用途 | 约束 |
|---|---|---|---|
| `background` | `#FFE69A` | 默认暖黄背景 | 首版全章节稳定使用 |
| `backgroundBottom` | `#FFDE79` | 背景底部可选色 | 不用于文字底板和棋盘块面 |
| `pattern` | `#E8BE54` | 外围浅纹样 | 使用低不透明度;不承担信息 |
| `stage` | `#FFF6DF` | 棋盘舞台 | 不加纹样和噪声 |
| `surface` | `#FFFBF2` | 次按钮、面板、弹窗 | 小面积高层表面 |
| `surfaceMuted` | `#F1E6D0` | 分组与次级底板 | 不用作禁用的唯一表现 |
| `cellFace` | `#FFF8EA` | 未走积木正面 | 依靠清楚轮廓识别 |
| `cellDepth` | `#D8C4A0` | 未走块底沿 | 不能替代关键边界 |
| `cellBoundary` | `#8A7660` | 积木轮廓 | 默认 1.25,密集态可到 1.5 |
块面与舞台颜色接近是有意保留的柔和关系,二者本身约 1.02:1;必须使用有效轮廓,不能只用阴影区分拼块。
### 5.2 主色、文字与品牌色
| 令牌 | 色值 | 用途 |
|---|---|---|
| `ink` | `#43382F` | 标题、线索、主文案、规则图标 |
| `inkSecondary` | `#71604F` | 说明、章节、计数标签 |
| `primary` | `#6552D9` | 标准模式已走路径、主按钮 |
| `primaryPressed` | `#5140B7` | 主按钮按压、淡紫面文字、焦点 |
| `primaryDepth` | `#49379E` | 紫色积木底沿 |
| `primarySoft` | `#ECE7FF` | 选关选中底、补数小底板 |
| `primaryEdge` | `#ADA0F1` | 局部倒角提亮 |
| `onPrimary` | `#FFFFFF` | 深紫与错误深红上的数字和文字 |
| `coral` | `#F57950` | 首页品牌、章节小标签、重开图标 |
| `coralInk` | `#4F2418` | 珊瑚底小字 |
| `coralSoft` | `#FFE0CF` | 轻量章节底与装饰 |
珊瑚不是错误色,黄色不是提示的唯一依据,紫色不是所有模式里所有块的统一填色。禁止把双色关画过的蓝橙格全部变紫。
### 5.3 语义色与特殊机制
| 语义 | 色值 | 必须同时具备的非颜色线索 |
|---|---|---|
| 错误面 | `#B93B46` | 叹号、所需数字/具体原因 |
| 错误浅底/文字 | `#FBE4E5` / `#862735` | 固定反馈栏文案 |
| 提示强调/浅底 | `#8B5E00` / `#FFF0B8` | 角标、双层线或段落文案 |
| 提示白芯/深外线 | `#FFFFFF` / `#43382F` | 独立路径线型;不替玩家填色 |
| 成功色/浅底 | `#2E6B52` / `#DEEFDC` | 对勾与“完成” |
| 蓝类别块/标记 | `#CEE4FF` / `#245A92` | 圆形标记 |
| 橙类别块/标记 | `#FFE0B2` / `#8A470E` | 三角标记 |
| 永久墙 | `#43382F` + `#F7C74D` | 实体连续条带+短条纹 |
| 门关闭/开启 | `#8B4B29` / `#2E6B52` | 中央封闭/明确开口;关/开 |
| 禁用面/文字 | `#E9E1D3` / `#7A7064` | 状态不可操作、无按压下沿 |
禁用控制不降低到近乎看不见;其解释仍使用可读文字。禁用项不纳入本次必须通过的色对门槛,不等于已验证其最终呈现。
### 5.4 色彩变体
首版只制作暖黄主主题。章节用图形小标、标签字和题卡组织区分,路径色与错误、墙、门语义保持不变。未来薄荷/珊瑚背景主题必须重跑对比度,并重新检查双色块、错误面和提示轨迹,不能全局自动换色。
## 6. 字体与文字表现
### 6.1 字体分工
| 用途 | 首选 | 字重 | 说明 |
|---|---|---|---|
| 路径数字与关卡编号 | Nunito | 800 | 圆润但字腔清楚,重点检查 1/7、3/8、6/9 |
| 中文标题 | Noto Sans SC | 700 | 首页 Logo 另制作原创字形 |
| 按钮与短标签 | Noto Sans SC | 600–700 | 不能用 Logo 字体替代小字 |
| 正文、规则 | Noto Sans SC | 500 | 长文读起来稳定 |
| 英文 | Nunito | 600–800 | 不强制全大写 |
Nunito 与 Noto CJK 对应仓库提供 SIL Open Font License 文件;实际分发须随所使用的字体文件保留相应许可证与版权说明,子集、改名等处理按实际许可证要求检查。[Nunito 许可](https://github.com/googlefonts/nunito/blob/main/OFL.txt)、[Noto CJK 许可](https://github.com/notofonts/noto-cjk/blob/main/Sans/LICENSE)
本次没有下载、打包或子集化字体。正式资源交付需记录字体文件版本及哈希。系统回退只能用于开发预览,不作为跨平台字形一致的保证。
### 6.2 字阶:375 宽设计基准
| 层级 | 字号/行高 | 字重 | 具体用途 |
|---|---|---|---|
| 首页展示标题 | 32 / 40 | 800 或原创 Logo | 首页,不放进常规对局 |
| 页面标题 | 24 / 32 | 700 | 选关、设置、规则标题 |
| 分组标题 | 18 / 26 | 700 | 章节、教学页标题 |
| 正文 | 16 / 24 | 500 | 规则说明、设置正文 |
| 按钮文字 | 16 / 22 | 700 | 下一关、三项操作 |
| 关键标签 | 14 / 20 | 600 | 关号、剩余、状态 |
| 辅助说明 | 13 / 18 | 500 | 短教学、章节补充 |
| 最小辅助字 | 12 / 16 | 500 | 非必要编号、小型角标 |
中文常规字距 0;单行展示标题最多 0.02em。正文不做粗描边、凸起或长投影。中文与数字按视觉基线微调,不能逐平台随机下沉 4% 而不检查实际字体。
### 6.3 棋盘字号
设 `u` 为矩形单位格间距,六边模式则采用相邻共边两格中心的距离作为视觉单位 `uHex`;不能直接用六边外接圆半径套矩形比例。
| 信息 | 标准比例 | 典型 u=56 | 密集态建议 |
|---|---|---|---|
| 起点 1 | 0.56u | 31 | 不靠巨型字号区分起点 |
| 单位数步号/线索 | 0.50u | 28 | 下限目标 18,实际服从可用空间 |
| 两位数 | 0.44u | 25 | 下限目标 16,超过空间则列为适配问题 |
| 未走奇/偶 | 0.42u | 24 | 与数字相近的阅读权重 |
| 已走奇偶副标 | 0.20u | 12 | 需要 11–12;不挤进两位数 |
| 通道角标数字 | 0.24u | 13 | 不低于 11,必要时换排版 |
数字字号由单位格决定,不随 2×2、3×3 的面积放大。两位数整体居中;测试 10、11、17、20、28、36 的实际宽度。静态线索不能发生字形跳动。
奇偶+数字的密集块采用“数字在上、奇偶在下”;通道+数字采用“中心通道、角落数字底板”。两种布局不叠加使用,当前数据的实际组合由审计决定;未来组合先出样张再放进关卡。
## 7. 圆角与形状语言
| 元素 | 标准圆角 | 使用说明 |
|---|---:|---|
| 小型图标底 | 8 | 不为每个图标都加底 |
| 标签 | 12 | 随高度限制,不能超过半高 |
| 三项操作按钮 | 18 | 高 64;紧凑态高 52 时用 14 |
| 内容卡片 | 24 | 章节、设置分组 |
| 棋盘舞台 | 28 | 密集/窄屏可降为 20–24 |
| 对话框 | 24 | 支持正文换行 |
| 底部面板 | 顶角 28 | 不挤压原有棋盘布局 |
| 拼块外角 | `clamp(6,0.18u,12)` | 大块仍用同一 u |
异形块先合并单位格形成单一轮廓,再做圆角与描边;内部线、内部阴影、内部倒角全部消失。凹角处理上限为 0.06u;狭窄凹口优先保留结构,必要时不圆。
六边外角圆滑量建议不超过 0.11uHex,并保留足够直线共边。墙和门要贴在逻辑共边上,不能跟随柔化轮廓漂移到格内。
## 8. 材质、阴影与光照
### 8.1 二维制作模型
本风格可以用二维程序几何+少量贴图实现。光源统一在左上,正俯视,不引入可旋转相机。视觉顺序为短投影、底沿、块面、轻倒角、规则标识。
| 参数 | 建议值 | 限制 |
|---|---|---|
| 厚度 | `clamp(2,0.055u,4)` | 大块不因面积增加厚度 |
| 按下后可见底沿 | 1 | 只压低表现层,不挪命中区域 |
| 外轮廓 | 1.25 | 密集态 1.5;不得虚化 |
| 倒角亮边 | 0.75–1 | 不围一圈高亮白环 |
| 块面渐变 | RGB 各通道变化不超过 6 | 中央字区优先纯色 |
| 接触投影 | x0 / y3 / blur5 / 10% | 色源使用主墨,须检查实际合成 |
| 舞台投影 | x0 / y4 / blur10 / 8% | 首版一层即可 |
| 按钮投影 | x0 / y3 / blur5 / 12% | 按压时减弱 |
| 弹窗投影 | x0 / y12 / blur28 / 16% | 仅高层面板使用 |
“厚度”用向下偏移的实色轮廓表达;阴影只提供接触感,不能把块形泡软。密集关先降投影,再降厚度,不删除有效边界。
### 8.2 数字像印字,积木像教具
生产版数字不用概念图那种明显浮雕与长投影。允许 0–0.5 单位极轻底缘,但优先纯色字形。材质纹理不覆盖数字、通道和奇偶区。背景和块面不叠随机颗粒动画。
### 8.3 大块与异形的阴影
阴影依据整块轮廓生成一次,不能对每个单位格分别投影。大块底沿与邻块缝隙至少留出 1 单位清晰分界;最大厚度不侵入下一行文字区。桥接区域统一处理底沿,避免看起来像额外小块。
## 9. 布局、尺寸与适配
### 9.1 375 × 812 对局基准
下表为示意坐标,假设顶部与底部安全区各 24。正式布局读取平台实际安全区与小游戏胶囊区域;不能硬编码为所有设备 24。
| 区域 | 参考位置 | 作用 |
|---|---|---|
| 顶部导航 | x20,y24,高48 | 选关、紧凑关号、音效/设置 |
| 关卡标题 | x20,y80,高40 | 章节与关号,不重复大 Logo |
| 计数栏 | x20,y128,高28 | 已走与剩余;保持单行 |
| 棋盘舞台 | x20,y168,335×464 | 内边距 16;中央放几何 |
| 反馈区 | x20,y640,高40 | 最多两行;不因错误出现而推棋盘 |
| 操作区 | x20,y692,335×64 | 三按钮,间隔 10 |
| 底部留白 | y756–788 | 隔开手势区域 |
三按钮等宽约 105。图标 22–24、文字 16,两者间隔 4;整按钮是触点,不能只点击图标。首页大标题与功能图标的 3D 感强一些,对局导航保持简洁。
### 9.2 以可用空间求棋盘尺度
在矩形/异形盘面中,先按单位格占地求包围盒列数 C、行数 R,再按舞台净宽 W 与净高 H 计算 `u=min(W/C,H/R,uMax)`。逻辑拼块数不能代替 C、R;36 块不等于 6×6。
默认最大 u 建议 64,优选约 56;很小的教学关居中并保留空间,不把 3 块放大到满屏。通常节距不低于 44 是目标,不是所有盘面的数学保证。
当前 200 关中存在 **7 列 × 6 行、36 块**的关卡,例如 `r2-163`、`r2-181`。标准舞台净宽 303 时 u≈43.3,应进入密集布局:外边距 12、舞台内边距 8,净宽 335,u≈47.9。
在 320 宽屏幕,同样密集布局净宽 280,u≈40,必须单独试玩,不能宣称所有格都达到 44 或 48。处理优先级为:减少装饰与内边距 → 压缩标题与反馈占高 → 稳定数字与符号排版 → 实机检查手势;不得随意扩大相邻重叠命中区。
六边盘面用实际顶点集合求包围盒,再统一缩放。六向中心距、外接半径和符号安全区分别计算;不能把六边的 q/r 范围直接当矩形列数。
### 9.3 设备档位
| 档位 | 典型画布 | 布局处理 |
|---|---|---|
| 紧凑 | 320×568 | 取消独立大标题,顶栏40、信息24、反馈32、操作52;舞台用剩余高度 |
| 常规短屏 | 375×667 | 标题一行;按钮56;必要时降低舞台上下空白 |
| 基准 | 375×812 / 390×844 | 使用标准排布并按真实安全区调整 |
| 长屏 | 414×896 | 增加舞台留白,不无限放大数字与按钮 |
| 宽屏竖持 | 平板 | 内容建议最大宽520–560;棋盘单独合理放大,文案保持可读 |
画面高度不足时用分区预算重新求舞台,不整体缩放一张 375×812 截图。不在对局中加入滚动;规则面板可滚动或分页,但绘制输入必须与面板隔离。
## 10. 基础棋盘与路径设计
### 10.1 单块、大块、异形、空洞
| 元素 | 表现规则 | 玩家应理解 |
|---|---|---|
| 单位块 | 统一正面、轻底沿、清楚轮廓 | 一个节点、一步 |
| 1×2/2×1 | 整块连续面,数字不拉伸 | 长边提供邻接,仍只一步 |
| 2×2/3×3 | 没有内部小格线 | 面积与步数分离 |
| I/L/S/T 等异形 | 联合轮廓、保留凹口 | 凹口与出口属于推理信息 |
| 空洞 | 直接露舞台,不画浅色假格 | 没有节点、不能斜穿 |
| 六边 | 六向共边清楚 | 碰角不构成邻接 |
块面建议每边内缩约 0.045u,形成约 0.09u 的视觉缝隙。实际共边仍以逻辑占地计算;缝隙只是渲染表现。手势以真实逻辑区域判断,阴影、底沿和提示外线不参与命中。
### 10.2 路径桥
桥宽建议 0.42u,长度只覆盖两块实际共边的视觉缝隙与必要搭接。已走块用整块填色,桥让路径连续;不再在块中央加一条抢眼的常驻粗线。
长共边上的桥应来自规则与布局求得的共享边线段,放在该段安全位置。异形的形心可能在空洞中,不可直接以两块中心连线当作正确桥。多段共边时采用稳定选择,避免重绘后跳位置。
### 10.3 数字锚点与既有实现差异
概念图把大块数字放在左上单位区;这不能当作当前代码的统一事实。原型 `anchorCenter` 对矩形使用包围盒中心,对异形选择形心附近的实际占用单位。
生产默认:**矩形数字居中,异形数字放在实际占用的安全单位中心,位置在整局固定。** 不随进出方向移动。优先沿用各分支稳定布局,避免只改皮肤导致线索跳位。
若主美希望保留概念图的左上锚点,需要单独做“中心/左上”可读性评审并列为排版变更,不能无说明改变。通道格采用专用角标数字,不套普通居中规则。
## 11. 规则元素的专用表现
### 11.1 固定数字与动态步号
固定线索使用相同数字字形,额外配 1.5–2 单位深墨内框或短角标,作为“这是条件”的持久区别;动态步号不加此框。走上固定线索后,框切为浅色高对比形态,数字仍保持阅读。
起点 1 可在空路径时做一次轻强调,不持续跳动;没有固定 1 的关卡不画虚构起点。早期数字原型允许从任意合法起点尝试时,说明使用“选一块开始”,不能继续写“从 1 开始”。
走错时保留实际步号并显示“需 8”一类所需值。若 36 块密集盘无法同时容纳两者,块内保留实际步号+叹号,固定反馈栏显示“这块应在第 8 步经过”;不要用错误填色把原始要求永久抹掉。
### 11.2 奇偶
未走格中央显示“奇/偶”,配固定条件内框。已走后显示实际步号,下方保留奇偶字。数字原型补数落在奇偶格时同时保留两项条件,不能删除奇偶。
错误示例文案:“这块需要偶数步,现在是第 5 步。”用词解释访问步数,不谈积木面积。海外版本需使用清楚可教学的 ODD/EVEN 标签;不能直接假设单字母 O/E 对所有玩家自明。
### 11.3 通道与方向
当前 `direction` 是连接两条边的通道,可反向经过;不是单向箭头。以两条平行边或深墨槽线画直通/弯通,连接实际边方向,中心不画箭头。不能作为起点或终点。
中心通道线建议宽 4–5,外侧浅衬线总宽 8–10,随密度降低但保留两层区别。角落数字放 14–18 的小底板;通道成立后改变衬线与端点标记,错误时标注冲突出口,不整块用厚高光盖住槽线。
### 11.4 双色交替
当前数据类别是圆形与三角形,现有画面采用蓝/橙。新皮肤采用浅蓝面+圆标、浅橙面+三角标;两类颜色持续保留,类别形状不变。
已走态增加紫色内轮廓、实际步号和桥接,不把类别面覆盖为普通紫块。建议内轮廓 2,向内放置,避免扩大块外轮廓。错误用局部红角标与边,不把整块永久染红遮住类别。
底部一次性规则示例“蓝色与橙色交替走”。颜色之外必须能靠圆/三角识别;类别标放在安全角落,避免与通道数字角标重叠。复杂格优先通道居中、数字右上、类别左下,相关小标不低于 11–12。
### 11.5 永久墙
墙位于两格的逻辑共边上。深墨实体带建议宽 6–8,中心配黄色短斜条,端部不越过相邻顶点。细缝、阴影或单色黄线都不能单独代表墙。
撞墙是“不允许追加”,不是走入后算错。墙做一次局部 160–200ms 强调,路径末端保持原位,反馈“这条边有墙,换个方向”。墙不能藏在块的下沿或桥后。
### 11.6 节奏门:按步数切换
“节奏”指每落一块切换开关状态,不是按音乐节拍操作。当前微信包的教学约定为空盘关闭,起点也触发切换;通过时必须已开,通过后锁定开启;退回到穿门之前或重开后恢复相应状态。门状态以 `doorOpen` 与 `doorLatched` 为准。
关闭:双端框+连续棕色挡条+“关”;开启:框架保留、中央留明显通道+“开”;锁定开启:保持开口,附小型固定扣/“已过”。开关状态不能仅靠棕变绿。
开闭动画建议 160ms,采用门片收拢/展开,不旋转整张棋盘。连续输入时可以合并表现至最新状态,但不能排队播放旧状态阻断操作。没有落格时门不自行切换。
### 11.7 实验转墙:只适配六边原型
墙绕固定顶点每走一格顺时针转 120°,起点计入;撤销反向还原。用明确轴心圆点与单根墙臂表现,必要时仅在教学显示下一朝向短弧标。
转墙与节奏门使用不同外形;不得用门的开口图标代替旋转墙。动画只表现 `spinnerPos` 的结果,碰撞用步号 t 判断,不依据动画中途角度。实验转墙不默认加入 200 关包。
## 12. 状态系统与覆盖优先级
### 12.1 状态矩阵
| 状态 | 块面 | 数字与标记 | 边缘/反馈 |
|---|---|---|---|
| 未走普通块 | 奶油色 | 无步号 | 深暖灰边、轻底沿 |
| 未走条件块 | 奶油或类别面 | 固定数字/奇偶/通道 | 条件框保持 |
| 标准已走 | 紫色 | 白色实际步号 | 桥接、紫色下沿 |
| 双色已走 | 原蓝/橙类别面 | 深墨步号+类别 | 紫色内边与桥 |
| 当前末端 | 沿已走态 | 步号保持 | 一组短焦点角标 |
| 已走冲突 | 普通模式深红;双色保留类别 | 实际步号、叹号、必要条件 | 局部冲突标记+原因 |
| 原型单步提示 | 保留原面 | 不覆盖原条件 | 双层角标/外框 |
| 微信分段提示 | 保留玩家与类别面 | 数字和规则保持清楚 | 未完成段上白芯深边线 |
| 通关 | 保持最终颜色 | 数字稳定 | 一次扫光+完成文案 |
### 12.2 多状态同时存在
语义判断先于绘制。错误说明优先于普通说明,门墙与通道优先于材质,数字优先于扫光。冲突+提示时保留冲突原因,只在未完成区域显示指路,不用黄色把错误擦掉。
当前末端、固定条件与提示使用不同线型:末端为短角标,固定条件为内框,提示为带深衬的线/外侧标记。不能让所有状态都成为三层发光圆环。
## 13. 提示、撤销、重开与通关
### 13.1 按版本提供操作
| 版本 | 常规三按钮 | 撤销方式 | 通关后 |
|---|---|---|---|
| 200 关微信包 | 重开/撤销/指路 | 按钮与逐格回退 | 原操作区替换为“下一关”;末关返回选关 |
| 数字原型 | 重开/补数字/指路 | 既有手势/点已走格截断 | 保留该分支当前自动进关行为,另案才修改 |
| 六边原型 | 根据现有能力映射重开/撤销/提示 | 逐格撤销 | 按分支现有行为 |
未实现的补数字不能出现在当前微信包的常驻操作栏。若之后移植,须独立做玩法与存档设计,不借换皮顺手加入。
### 13.2 当前微信包的分段指路
保持现有机制:点击显示最早尚未正确完成的一段;段落按起点、数字点、通道方向点、奇偶点、终点划分;正确到达段末后消失,再次点击才展示下一段。偏离正确路线时,不沿错误路径继续延展。
表现为白色内芯+深墨外线,有限运动的白光点用于方向说明。提示层独立于玩家棋盘,并从提示图层中擦除玩家已经走过的实际拼块区域;已画连接不重复叠提示。底层填色、数字、通道和蓝橙类别不得因指路改变。
标准建议:内芯 4–7,外线总宽增加 3–4;提示在奶油上也必须能辨认。端点环避开中心数字,光点经过时不覆盖关键标记。用遮罩与切段避让数字、通道、墙门的核心信息。
当前提示会保持到段末完成,不将其改成 2.4 秒自动消失。`hintAttention=2400` 只表示刚请求时的注意力强调窗口;减少动态模式下静态虚线路径与端点仍持续存在。
### 13.3 数字原型的补数与提示
补数只添加一个真实确定步号,不自动画路;新增线索用小型紫色短角标标识“辅助补出”,不能和玩家步号混淆。重开保留本局补数,退出重进按该原型现有规则恢复原始题目。
单步指路为空路径指起点、正确前缀指下一块、走错时指最后正确位置。需要回退就直接说明“退回标记位置”,不能显示会被误认为正确下一步的箭头。
### 13.4 重开与撤销
重开是普通操作,不使用破坏性红按钮;首版不增加每次都弹的确认框。保留本版本的关卡、偏好与提示恢复规则。撤销无可退步骤时禁用,位置与宽度保持不变。
路径回退按逻辑立即生效,动画只淡出被删除的步号和桥。批量回退不得逐步串行播放几秒。当前微信包不新增“点任意已走格跳回”的行为。
### 13.5 通关
微信包保持手动下一关:完成后棋盘固定,反馈栏换为“完成!准备好就进入下一关。”,三按钮区原位替换成单个主按钮。按钮不能从屏幕底外飞入推挤棋盘,最后一关显示“返回选关”。
没有分数、星级、连胜奖励的规则就不新增成绩星星。可以用没有评分含义的完成章与对勾。章末用短页面总结“本章完成”,不展示推断的智力年龄。
## 14. 首页与继续游戏
首页承担较多品牌表达:标题 Logo 约占首屏可用高度的 12%–16%,一组真实拼块小构图占 20%–26%,继续游戏是第一主操作。比例是构图建议,不作为适配硬编码。
信息顺序:品牌 → “每块一次,数字对步数”的简短玩法句 → 继续第 X 关 → 选关 → 设置。初次启动主按钮为“开始”;已有进度为“继续第 X 关”。
不新增购买皮肤、每日签到、排行、宝箱等未定义系统。入口如果只提供数字游戏,不展示空的玩法选择;未来共壳接入六边原型时才添加真实玩法卡。
首页背景可以比对局多 1–2 个装饰,但不循环飘动。开始按钮高56–60、圆角18、紫面白字,触点至少48。
## 15. 选关与章节页面
200 关按现有 `playOrder`、20 章与解锁状态组织,不按关号字符串重新排序。每章使用一张奶油题卡,关卡入口为简洁积木按钮;维持现有分页能力,不把 200 个按钮同时塞一页。
| 关卡状态 | 表现 | 不允许 |
|---|---|---|
| 可玩未完成 | 奶油底、深数字 | 用很浅灰字隐藏入口 |
| 当前/继续 | 紫色或淡紫选中面、明确标记 | 与通关对勾长得一样 |
| 已完成 | 小对勾+普通可点状态 | 以三颗星虚构评分 |
| 真实锁定 | 锁标+明确不可点 | 对当前全开放试玩版强加锁定 |
默认 4 列,按钮高48–52,间距8。每章题量以数据为准,不假设永远10关。题卡可附一个代表机制的小图形,不展示每个复杂关的缩小棋盘。
关卡名太长时两行,并保留“第 X 关”可读;分页与继续按钮在固定底部区域,不压在最后一排题目上。反馈与导出记录入口属于现有微信工具能力,可在设置/更多中延续,避免抢首屏。
## 16. 正式对局 UI
顶栏左侧选关,中央关号,右侧音效或设置;微信胶囊占用区必须避让。规则入口置于第二信息行或设置中可见位置,不能只靠第一次弹出。
状态默认“已走 3 步 · 还剩 8 块”,两者按逻辑块计算;2×2走一次只增加1步。无需同时显示多个重复进度条。若计数空间不足,只保留“剩余 8 块”,避免挤小关键文本。
反馈栏高度固定,普通“每块只走一次”和错误原因在同一位置切换。允许最多两行;不足时短文案优先,完整说明交给规则页,不能把“需第8步”截掉。
屏幕绝大多数交互发生在棋盘,不要求手指每走一步都去点按钮。布局变化只在关卡加载或屏幕尺寸变化时发生;显示提示、错误、通关按钮都不重新计算棋盘位置。
## 17. 教学与规则面板
当前微信包已有真实教学关卡与逐步演示,继续复用正式绘制与判定,演示使用独立状态,不改玩家路径、存档、提示次数或音效偏好。
教学页结构:机制名称 → 一句具体动作 → 小型真实盘面演示 → 最多两句解释 → 重播/上一段/下一段 → 返回游戏。复杂组合按实际出现的机制拆页,不提前画出正式关的答案。
| 机制 | 首句文案建议 | 演示必须表达 |
|---|---|---|
| 基础 | 从 1 开始,走过每一块 | 边挨边,不能斜走 |
| 大块 | 这是一整块,只算一步 | 整块一次变色,数字只加1 |
| 异形 | 拐着的这一整块也只算一步 | 先强调完整轮廓 |
| 通道 | 从连着的两条边进出 | 可反向,错误拐出后退回 |
| 双色 | 每一步换一种颜色 | 蓝→橙→蓝,形状标记同时可见 |
| 奇偶 | 这块要在偶数步经过 | 2、4、6与当前步号的关系 |
| 节奏门 | 每走一块,门就切换一次 | 起点也切换,通过后保持开 |
| 六边 | 六条边都可能通往邻块 | 共边与碰角的区别 |
当前约1秒连贯演示可以保留为默认重播速度,但增加“逐段读懂”的排版空间;若需要更慢演示,作为教学设置提案,不在本报告中声称已实现。关闭面板回到原关原位置。
规则页面板内文字16/24,正文宽度不超过可用宽度;窄屏用分页或自然滚动。遮罩下棋盘完全停止接收绘制输入。返回游戏按钮始终可达,不藏在超长正文之后。
## 18. 按钮、图标、标签与面板组件
### 18.1 按钮状态
| 状态 | 主按钮 | 次按钮 | 几何变化 |
|---|---|---|---|
| 常态 | 紫面白字、深紫下沿 | 奶油面深墨字、暖灰下沿 | 稳定 |
| 按下 | 深紫面、投影减弱 | 下压、轻加深 | y+1,最多缩0.98 |
| 松开 | 120ms回原位 | 同左 | 不反弹超过原尺寸 |
| 禁用 | 中性面与文字、无活跃下沿 | 同左 | 不接受动作 |
| 键盘焦点 | 外置2px深紫线、间隔2 | 同左 | 不移动布局 |
图标建议重开为珊瑚色回转符、撤销为深墨回退、指路为紫/暖黄组合灯泡;固定按钮文字不随图标颜色改变。图标24,笔画2–2.5,端点圆润,但避免全部做厚塑料玩具占满按钮。
### 18.2 标签与数字胶囊
标签高28–32,左右内边距12,圆角12。珊瑚标签配深棕字。不要为了复制概念图使用浅珊瑚白字;若需要白字珊瑚标签,必须另选更深背景并重新审计。
计数标签只突出变化的数字,不每次弹跳整个胶囊。计数使用稳定宽度或经过测试的等宽数字特性,不能未经核对声称 Nunito 的所有数字必定等宽。
### 18.3 设置与对话框
设置建议包含音效、振动、减少动态、规则帮助,以及现有数据操作。新开关必须实际接线后才显示;不把未实现设置做成可点击假按钮。
确认删除进度属于已有数据管理时使用清楚的二次确认;普通撤销和重开不复用删除进度的红色样式。弹窗遮罩建议主墨32%不透明度,实际可读性按合成结果检查。
## 19. 文案、国际化与无障碍
用“试着退回一块”“这块需要第8步”“门现在关闭”解释状态。避免“笨蛋”“智商不足”“天才年龄”等人格或能力评判。错误反馈提供修正方向,不威胁扣分。
英文、本地化后的长字串预留约30%宽度余量只是布局起点,仍要测真实译文。主按钮允许合理两行,但底部不能变成四行小字。中日韩文字分别使用对应地区字体,标点和数字基线需复核。
重要状态同时使用颜色、形状和文字;双色模式使用圆/三角,门使用开口,固定条件用内框,提示用线型,错误用叹号与原因。减少动态关闭缩放、抖动、循环光点和粒子,仍完整保留门状态与提示路径。
对比度内部采用普通文字4.5:1、关键非文字信息3:1作为目标,参考 W3C 文本与非文本对比度说明;本报告不是平台合规认证,静态色对通过也不代表整个游戏符合 WCAG。[文字对比度](https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum)、[非文字对比度](https://www.w3.org/WAI/WCAG22/Understanding/non-text-contrast.html)
标准按钮触点目标48×48。盘面按真实密度适配,不能因相邻格过小就让它们的触点重叠并随机吞输入;密集关必须实机检查。Canvas 版若没有语义辅助层,不能宣称已有屏幕阅读器完整支持,后续另列实现工作。
## 20. 动效、特效、声音与触觉
### 20.1 四档基础节奏
快速120ms、基础200ms、较慢320ms、停留500ms。动效是操作结果,不是操作前提;规则与输入不等待动画完成。
| 事件 | 推荐时长 | 表现与幅度 | 输入要求 |
|---|---:|---|---|
| 按钮按下/松开 | 80 / 120ms | 下压1,缩至0.98后恢复 | 点击即时响应 |
| 落格 | 140ms | 块面短压0.985,回弹最大1.015 | 几何与命中不缩放 |
| 桥接 | 120ms | 只长桥厚度,跨缝方向始终覆盖 | 不出现临时断路 |
| 步号出现 | 100–120ms | 轻淡入,无飞入旋转 | 关键固定线索始终可读 |
| 条件命中 | 180–200ms | 边框短强调 | 不用整块闪白盖数字 |
| 撤销 | 100ms | 被删数字与桥淡出 | 状态立即撤回 |
| 冲突 | 200ms | 红边、叹号;可选≤1.5位移 | 不全屏抖动,不打断手势 |
| 门切换 | 160ms | 门片收拢/展开 | 逻辑状态独立生效 |
| 转墙 | 160ms | 绕真实轴心120° | 不以中间角度判碰撞 |
| 进场 | 单块200ms | 小幅出现,间隔12ms,总延迟封顶120ms | 输入开启时几何已固定 |
| 通关扫光 | 总计320ms | 沿整条路径压缩播放一次 | 不按36块各播320ms |
| 通关停留 | 500ms | 显示完成反馈 | 微信包下一关仍由玩家点击 |
推荐缓出曲线 `cubic-bezier(0.22,1,0.36,1)`。柔和回弹只在极小幅度内,狭窄异形与墙门附近可取消形变只做色边变化。
### 20.2 特效边界
思考阶段无常驻发光、漂浮、呼吸缩放。扫光用低透明浅色边,不把紫面提亮到白字不足对比的颜色。原代码的 `visitedBright` 等旧亮面不直接沿用;新皮肤优先维持基础紫面,只增外围光。
首次机制出现可强调一遍。提示流动是用户主动请求后的局部动画,退后台停止;回前台按当前提示状态恢复,不一次播放积压帧。
粒子首版可不制作。若保留通关小纸片,建议8–12片、总时长600–900ms,出现在棋盘边缘外,不遮数字,不常驻,不把按钮延迟到粒子结束才出现。减少动态下关闭。
### 20.3 声音
延续当前包已有的半音阶落格声音身份,不因换皮重写成强制节奏游戏。音色方向为短木琴/柔和玩具键音,低频不过重,高频不刺耳;参考时长落格60–100ms、撤销50–80ms、冲突100–140ms、通关400–650ms。
快速连画限流与声部数需要实机调试,不能每帧创建新音频对象。建议同类短音最多3–4声部并发,旧短音按策略释放。关闭音效立即停止,退后台与音频中断按现有生命周期停止;静音不影响判定与提示。
规则上正确落下一步不等于已证明整条路径正确。音效可表达“已落格”“线索吻合”,不能每步都播绝对正确的奖励旋律误导玩家。
### 20.4 触觉
默认克制:普通每步可不震;错误或墙挡轻短反馈一次,通关一次较柔和反馈。振动使用平台支持能力与用户开关,后台不振动。具体强度按真机 API 能力设定,不用不存在的跨平台精确毫秒幅度承诺。
## 21. 资源清单与美术交付
### 21.1 首版资源范围
| 资源组 | 必需内容 | 推荐形式 |
|---|---|---|
| 品牌 | 原创中文标题,必要英文版本 | 矢量母版+透明位图导出 |
| 背景 | 1套暖黄渐变/纯色、4种几何纹样 | 小型矢量或透明贴图 |
| 舞台与面板 | 舞台、卡片、弹窗、按钮 | 程序圆角/九宫格 |
| 块体材质 | 面、底沿、边、倒角 | 由实际轮廓程序生成 |
| 功能图标 | 选关、设置、音效开关、重开、撤销、指路、规则、关闭、下一关、对勾 | 同一图标规范,建议24逻辑单位母版 |
| 规则符号 | 奇偶、通道六种、圆/三角、墙、门状态、实验转轴 | 可读的矢量/程序几何 |
| 字体 | 数字与UI实际使用字重/字集 | 字体文件+许可+版本记录 |
| 反馈 | 短落格、撤销、冲突、线索命中、通关音 | 复用现有链路,按资源预算调整 |
| 展示素材 | 真实对局、复杂关、规则与选关截图 | 基于实际运行,非概念图替代 |
不需要为200关分别制作背景和积木贴图。矩形、异形、六边共用材质语言,几何由关卡生成。首版不制作复杂角色、真实教室和多套天气。
### 21.2 导出与命名
命名建议 `bc_ui_button_primary`、`bc_icon_hint`、`bc_pattern_triangle`,颜色与逻辑状态通过令牌或明确定义的变体管理。可缩放组件标出九宫格安全区、内边距、透明边与原点。
位图提供至少对应目标显示密度的清晰版本,但不盲目全量4倍导出。带透明的边缘检查白边;图集间隔与挤出按引擎采样策略配置。字体与贴图内存预算以打包和真机数据决定。
概念图只作为方向参考,不能整张切成按钮和棋盘。按钮、文字、数字、规则符号必须可独立排版和本地化。
## 22. 渲染、性能与程序接入
### 22.1 图层顺序
背景 → 装饰 → 舞台 → 块体投影与底沿 → 块面与桥 → 类别底与规则符号 → 数字与条件框 → 局部状态/提示 → 保证清楚的墙门及关键标记 → UI → 弹窗。
该顺序不是简单全局重画一次的保证。提示经过数字或通道时使用遮罩/裁切避让;关键符号可在最终语义层补绘,不能只声明“数字在上”就忽视独立提示 Canvas 的实际覆盖。
对于双色块,规则类别是底层身份;已走是叠加状态,错误是局部覆盖,提示是独立效果。不同语义不能压缩成一个 `fillColor` 变量。
### 22.2 实现建议
保留当前规则层,抽出视觉令牌与纯表现状态:普通/类别面、访问、冲突、焦点、条件、提示、门状态。二维 Canvas 或 Cocos Graphics 可复用几何轮廓;九宫格只用于UI,不能拉伸一张L形贴图模拟任意拼块。
静态背景、舞台与不变轮廓可缓存;不在每帧对36个块重复执行大模糊。半透明提示 Canvas 维持独立,不清空底层玩家棋盘。设备像素比只用于清晰度,不参与逻辑坐标和命中计算。
字体加载后重新计算文字边界;启动前等待关键字形准备完成或提供明确fallback,避免解题中途数字换宽。前后台切换取消旧动画计时,减少动态模式停掉无必要的持续帧循环。
性能目标建议60fps,低性能设备稳定30fps作为降级候选;这不是本次已完成的实测。单次更新需记录输入到反馈延迟、绘制耗时、提示层重绘与音频并发。先关阴影和粒子,不删墙、门、条件框、类别标记。
### 22.3 接入边界
旧原型若改配色,需要同步各自 `src/theme.ts`、Web样式与现有设计文档,并通过主题一致性检查;本报告不直接覆盖旧令牌。微信包另有宿主UI、上游快照、提示层与构建,不能只改旧Web CSS就声称小游戏换皮完成。
上游快照及其哈希有来源追踪要求,后续应明确在适配层引入主题,或以新的版本快照重建并更新manifest。不能暗改来源文件而保留旧校验记录。
## 23. 商店、小游戏与商业展示
首版宣传视觉沿用暖黄+奶油+紫三色识别。图标优先“带数字的两三块积木与一笔桥接”,小尺寸下清楚;首页Logo不是直接压缩成图标。
展示顺序建议:基础玩法一张 → 大块一步一张 → 通道/双色的真实复杂关一张 → 辅助与撤销一张。每图只讲一个重点,玩家应先看见棋盘。
选定效果图是方向资产,不应作为已上线实际画面或实机截图。正式截图来自对应版本运行;不把通关奖励、分数或联机能力画进没有实现的产品。
当前指路未接广告,报告不新增商业化流程。如后续决定激励广告,提示的免费/广告属性必须在点击前明确,观看成功后保持玩家路线,失败也不清空;这是后续产品工作,不作为本次必做功能。
评价“商业更好”需要对照测试,不能从任天堂参考或用户选图直接推导收入提升。可对比旧柔和积木与新风格的素材点击、进入后理解、完成和继续意愿,玩法和题目保持一致。
## 24. 样张与验收矩阵
### 24.1 必须制作的黄金样张
| 样张 | 核心检查 |
|---|---|
| 1-8标准大块对照 | 一整块、清晰锚点、紫色路径与奶油边界 |
| L/T/S 异形+空洞 | 凹口、内部无缝、真邻接 |
| 两位数与奇偶 | 10/11/28/36、条件副标、错误要求不丢 |
| 通道+数字 | 中心槽线与角标互不覆盖 |
| 双色已走+提示 | 蓝橙身份、圆三角、玩家填色始终保留 |
| 节奏门开/关/已过/撤销 | 形态明确、无背景自动切换 |
| 六边墙+提示 | 六邻接、共边墙、桥不穿墙 |
| 密集 r2-163/r2-187 | 7列36块与机制组合,320宽真机 |
| 实验转墙 | 单独原型,轴心、120°、回退恢复 |
| 通关与下一关 | 微信包棋盘不移、手动前进 |
### 24.2 验收标准
- 读盘:所有轮廓、空洞、实际共边清楚;大格和异形没有内部格线。
- 数字:不被扫光、桥、指路点、门标签遮挡;固定条件和实际步号可区分。
- 状态:错误、当前位置、提示、条件框使用不同形态;蓝橙关全程保留类别。
- 操作:快速滑动、慢滑、松手续画、逐格退回、撤销、重开与提示行为不变。
- 提示:开启、撤销再画、偏离、段末完成前后,玩家已画块的基础填色像素不因提示改变。
- 布局:320×568、375×667、390×844、414×896均检查;弹窗与通关按钮不遮盘面。
- 生命周期:退后台、音频中断、返回前台、方向/尺寸变化,状态与位置正确。
- 文字:中文、英文长文、系统字号变化与fallback检查,无省略关键规则。
- 表现:减少动态与静音下所有玩法和提示仍可理解。
- 内容:采用同一发布快照,仍跑全关卡唯一解、原有输入和回归检查;换皮不能替代规则校验。
新风格试玩目标建议:首次看到2×2后,多数新玩家能解释“一整块只一步”;玩家能在不依赖颜色时区分类别、墙和门。样本量、成功标准与通过比例在测试计划中预先确定,本报告不把这些目标写成已有结论。
## 25. 分阶段制作与决策
| 阶段 | 交付物 | 进入下一阶段的条件 |
|---|---|---|
| A 规范冻结 | 本报告、令牌、选定参考、分支映射 | 颜色、尺寸、按钮能力一致 |
| B 黄金样张 | 基础、大块、通道、双色、门、密集六类 | 复杂关也清楚,非只看首页 |
| C 可交互单关 | 渲染、输入、声音、提示、撤销 | 连画与状态不被动效阻塞 |
| D 全页面 | 首页、选关、对局、规则、设置、完成 | 窄屏与真实安全区通过 |
| E 全内容与平台 | 200关抽样/全量自动回归、真机验证 | 原有测试通过,显示和性能达标 |
| F 展示与验证 | 真实截图、素材对照、试玩记录 | 结论基于数据而不是概念偏好 |
优先级:P0为逻辑轮廓、条件、状态、输入与提示;P1为字阶、材质、页面、教学;P2为首页Logo精修、少量通关粒子、附加主题。先完成复杂关可读性,再增加装饰。
本报告没有虚构工期、成本和转化提升。实际排期需结合现有引擎、字体包、两套原型与微信宿主的接入量评估。
## 26. 已验证事项、证据与剩余工作
### 26.1 本次验证边界
已做:读取当前关卡与代码;统计200关机制与几何;记录关键源文件SHA-256;以不透明sRGB计算指定色对;对照选定概念图制定参数。
未做:应用新主题到运行时、导入字体、生成生产切图、跑换皮后的整包回归、测真机帧率、验证商店表现或宣称完整无障碍合规。原包既有验证记录是参考证据,不等于新主题已经通过测试。
### 26.2 Evidence → Finding → Path
| 证据 | 来源与复核 | 观察 | 对应设计结论 |
|---|---|---|---|
| E-01 | `src/upstream/levels.json`;运行配套审计脚本 | 200关、20章、3–36块;多机制组合 | F-01:必须适配密集关及组合符号,不能照11块样图直接缩放 |
| E-02 | `wechat-campaign-200-r2/src/main.mjs` | 重开/撤销/指路;通关手动下一关 | F-02:按钮按版本映射,完成时原位替换 |
| E-03 | `wechat-campaign-200-r2/src/hints.mjs` | 分段提示、独立透明层、已走区域擦除 | F-03:提示不覆盖玩家填色,不改为短时单步闪烁 |
| E-04 | `src/upstream/rules.mjs` | 可反向通道、双色、奇偶、门按路径步号 | F-04:规则使用专用符号,动画不替代判定 |
| E-05 | `modes/01-number-stroke/src/board.ts` 与 `game.ts` | 矩形中心锚点、异形安全锚点、补数与截断 | F-05:概念图锚点和按钮不直接冒充当前行为 |
| E-06 | `modes/03-hex-walls/src/board.ts` | 转墙按离散步号定位 | F-06:转墙与节奏门分离适配 |
| E-07 | `contrast-audit.json` | 规定色对计算与诊断 | F-07:珊瑚配深字,奶油块依靠有效边界 |
| E-08 | 选定概念图与用户选择 | 暖黄+奶油+紫色方向已选定 | F-08:视觉以此冻结,生产布局仍按玩法修正 |
复核路径 P-01:读取 E-01 与 E-04确定规则 → 按 F-01/F-04制作基础和组合样张 → 按 E-02/E-03/F-02/F-03接入操作与提示 → 按 E-07验证色对 → 按第24节完成新主题回归与真机测试。
文件内容哈希与统计见配套 `project-audit.json`。该表用于设计追溯,不是安全审计报告。若源文件以后更新,重新运行脚本并审核差异,不能把旧记录作为新版本证明。
### 26.3 参考与来源
- 项目:[当前200关微信包说明](../wechat-campaign-200-r2/README.md)、[早期关卡设计规范](关卡设计规范.md)、[既有UI规范](design.md)。旧文档的关数、提示或通关行为需按各自版本解释。
- 任天堂:[官方页面与玩法画面](https://www.nintendo.com/hk/switch/azlsa/)、[开发者访谈](https://www.nintendo.com/en-gb/News/2021/December/Ask-the-Developer-Vol-3-Big-Brain-Academy-Brain-vs-Brain-2087189.html)。仅用于参考设计语言与研究来源。
- 字体:[Nunito](https://github.com/googlefonts/nunito/blob/main/OFL.txt)、[Noto CJK](https://github.com/notofonts/noto-cjk/blob/main/Sans/LICENSE)。
- 可读性:[W3C文字对比](https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum)、[W3C非文字对比](https://www.w3.org/WAI/WCAG22/Understanding/non-text-contrast.html)。
## 附录:一页执行参数
| 项目 | 首版默认 |
|---|---|
| 气质 | 明亮、整洁、可触摸的逻辑教具 |
| 主背景/舞台 | `#FFE69A` / `#FFF6DF` |
| 未走面/有效边界 | `#FFF8EA` / `#8A7660` |
| 标准路径/路径字 | `#6552D9` / `#FFFFFF` |
| 主墨/辅助墨 | `#43382F` / `#71604F` |
| 珊瑚/标签字 | `#F57950` / `#4F2418` |
| 数字/中文 | Nunito 800 / Noto Sans SC 500–700 |
| 正文/按钮/辅助 | 16/24;16/22;13/18 |
| 对局大标题 | 不重复首页Logo,优先关号与章节 |
| 按钮/舞台圆角 | 18 / 28 |
| 棋块外角 | `clamp(6,0.18u,12)`,大块不加倍 |
| 厚度/投影 | 2–4;0/3/5/10% |
| 桥宽 | 0.42u,严格落在共边 |
| 特效 | 局部、短促;思考时无常驻动画 |
| 微信三按钮 | 重开/撤销/指路 |
| 微信指路 | 独立分段叠层,保留已画填色,到段末消失 |
| 微信通关 | 棋盘固定,原操作区显示下一关 |
| 特殊颜色 | 双色面永久保留,错误与提示靠形状补充 |
| 制作首要检查 | 7列36块、通道数字、双色提示、门开闭、六边共边 |