## 2026-10-23:回退音阶与流畅切关 版本:2026-10-23-descending-undo-fast-next;基于90d83b3的BGMA连续播放与节点缩放版。仅本地开发与打包,不上传微信,不开启开发者工具服务端口,不推送远端。 - 手势回退与撤销键按被撤销步号,使用前进同音色音阶逆序播放。例如7步回退播放7、6、5、4、3、2、1,最后一步清空仍发1;重开保持原音效。快速回退与前进共用三路声音池,过密声音只保留最新音高,不补播积压。 - 过关短音乐只调整播放增益:0.75→0.6375,降低15%。普通移动、节点、重开、BGM基础音量及通关压低/恢复逻辑不改;原WAV资源不变。 - 点击下一关不再现场求解:构建时准备并验证200关完整路线,源关卡哈希记录在src/prepared-routes.json。玩家仍按原公开规则自行操作,提示机制不变。移除start/showPlay的重复棋盘绘制。 - 下一关空棋盘的材质按空闲帧逐格预热,拖动暂停、超时取消;换关、选关、后台和尺寸变化终止旧任务。预热不产生声音、振动、进度或玩家反馈,缓存仍使用原有内存上限。 - 浏览器真实Canvas抽测第91/163/192关:62.3/130.5/152.6ms降为13.1/8.4/7.8ms;数据见qa/next-transition-browser-20261023.json。此为同机浏览器数据,不视为真机帧率验收。 - 验收:101项模块测试、200关触摸回归;原始关卡与上游快照不变,旧发布包保留。手势/按钮降序音阶、音量、BGM不中断、预热生命周期与单次绘制均有回归。 包:../releases/NumberSwipe-main-回退音阶与流畅切关-20261023.zip。交专门打包上传会话处理上传。 ## 2026-10-23:居中标题与指定WAV音乐 版本:2026-10-23-centered-title-selected-wav。使用用户交付的NumberSwipe-BGM-LOOP-v1-20261023音频;旧版发布包保留。 - 标题保持原画并水平居中;设置移到总进度、关卡范围标签同一行。小屏仍为每页15关,按钮无重叠。 - 菜单30秒循环;每次进入关卡从67.2秒A、约65.455秒B中随机选一首循环。同关重绘、移动、静音恢复及后台恢复不重选,切关再随机。 - 通关短句替换原通关音,使用交付的3秒WAV,仅播放一次;通关之前先停止BGM,下一关恢复循环。短句沿用音效开关及实际起播同步,BGM沿用音乐开关,无动态压低或叠加。 - 原始44.1kHz/16bit立体声WAV原件保留于.audio-sources并记录哈希;运行BGM适配为22.05kHz/16bit立体声WAV,通关短句为同采样率单声道,完整时长与乐句保留。没有改用MP3或OGG。npm构建校验现成WAV,不依赖ffmpeg。 - 长BGM放入music分包,异步加载期间操作不阻塞;回调只播放当前场景,静音、后台、通关及加载失败均不会迟到播放。原始来源目录已从根工程与子工程上传配置中排除;music/CREDITS.md保留音源署名。 - 验收:89项模块测试、200关触摸回归;375及320×568浏览器布局,随机选择、分包取消、前后台与音效同步均有回归。微信真机音量、循环边界听感与分包下载仍需预览验收。 包:../releases/NumberSwipe-main-居中标题与指定WAV音乐-20261023.zip。工程仍为wechat-campaign-200-r2。 ## 2026-10-23:参考图标题还原 版本:2026-10-23-reference-title-artwork。基于最新温暖无节拍BGM主版,本轮没有修改音乐、音效、震动、规则、存档或关卡。 - 移除普通字体描边模拟;使用参考图经imagegen提取的独立透明标题美术资源images/title-reference.png,保留定制橙紫字形、圆润奶油贴纸边、倒角高光及立体厚度。资源为2132×737,等比绘制,首加载完成自动刷新。 - 选关顶部按真实图片比例预留空间,小屏缩小网格间距,继续保持每页3×5关、触摸目标至少44px,进度与范围标签不被遮挡。 - 图片资源随发布包保存;浏览器预览与模拟宿主支持原生图片加载。 - 验收:83项模块测试、200关模拟触摸;375宽及320×568浏览器画面核对。最新温暖BGM资源哈希不变。真机显示仍需微信预览确认。 包:../releases/NumberSwipe-main-参考图标题还原版-20261023.zip,保留之前版本。 ## 2026-10-23:温暖无节拍关卡BGM试听版 版本:2026-10-23-warm-ambient-bgm。用户选择试用温暖、无节拍、弱旋律方向;本轮仅替换关卡音乐,选关音乐保持原文件哈希。 - 原创32秒循环:低中音区柔和和声缓慢交叠,没有鼓点、规律敲击或突出旋律;采用周期波形与平滑交叉渐变,避免循环接缝。 - PCM均方根约0.035,峰值小于0.17,关卡播放音量0.14;选关音量仍为0.16。保留音乐/音效/振动独立开关及后台、中断恢复。 - 节点确认音、通关和弦、缩放、触觉、存档、选关标题及200关规则保留。之前节点跟手与立体标题发布包保留。 - 验收:80项模块测试、200关触摸回归;生成资源的接缝、包络突变、音量及开关恢复检查。实际听感与真机扬声器/耳机效果需用户试听。 试听资源:music/play.wav。发布包:../releases/NumberSwipe-main-温暖无节拍BGM试听版-20261023.zip。 ## 2026-10-23:节点反馈与立体标题 版本:2026-10-23-responsive-nodes-sticker-header。开发分支:codex/node-feedback-responsive。以当前正式主工程为基线;没有从历史副本覆盖文件。 - 修复只有固定数字触发checkpoint的问题:合法到达数字、奇偶、方向节点均使用独立checkpoint-N确认音及中震;最后一格只触发完成和弦。错误不冒充节点,也不参照答案判断。 - 所有普通落格、回退落点(撤销最后一步时为被撤销格)、错误局部提示改为90ms小回弹,峰值1.025;特殊节点90ms峰值1.065。只缩放块体表面,文字锚点、规则线和命中区域保持稳定。 - 回退和撤销加入轻震。经用户选择保留轻/中强度,把普通震动最短间隔70ms改为61ms,连续触发密度约增14.8%;不宣称单次物理强度提高15%。短震降级、关闭开关、预览禁震及后台取消继续有效。 - 原数字节点彩带的触发、范围、最多两组及1500ms时长保留。新增奇偶/方向节点使用较大缩放和确认音,不额外扩大彩带。 - 选关标题按参考图使用橙紫双色、奶油描边和叠层立体处理;进度奶油标签、关卡范围橙色标签。保持每页15关及320×568安全区域。 - 选关与关卡BGM正常保留,音乐资源、音量及独立开关本轮没有更换;音效、震动和回退不停止音乐。 验证:78项模块测试通过(含200关每一步特殊节点音效断言),200关模拟触摸回归通过;375宽、320×568浏览器排版通过。200关提示填色像素复核记录见qa。真机音效起播、振动手感与高密度帧率仍待iPhone和Android验收。 BGM待选方向:①温暖无节拍氛围,低音区软垫与缓慢和声、弱旋律(优先推荐);②稀疏毛毡钢琴,少量低中音、长留白;③柔和木质环境音,去固定节拍、极少敲击,保留教具室气质。当前16秒循环暂留,未擅自替换。 包:../releases/NumberSwipe-main-节点跟手与立体标题-20261023.zip。之前主版本包保留。 # 历史开发记录 2026-10-23 本版本已提升为正式 main。以下独立实验版和不替换主版的说明仅描述提升前历史;当前入口以 README.md 和 release-info.json 为准。 ## 本轮更新:音乐与流动指路(2026-10-22) - 每页15关,3列×5行(末页5关左对齐);完成数字后绘制圆润勾。320×568仍保持44px以上格子。 - 选关按钮与指路启用分别播放新短音;选关、游戏各有一首原创16秒稀疏木琴循环,低音量独立播放器,不占用四路反馈池。 - 游戏右上角统一进入设置,只有音乐、音效、振动三个独立存储开关;旧减少动态存储不再限制本版表现。 - 数字节点经实际操作测试确认:小幅回弹、中震、checkpoint-N音;终点只用complete和弦,无节点叠加。方向格步号缩小保留线路。 - 指路箭头沿完整分段保留位置;前进一步旧箭头180ms冲向终点,新箭头65px/s出发;不按剩余路线长度重置相位。 - 后台、音频中断停止音乐和反馈;恢复后按场景播放。原版声音资源及上一版包保留。 验证:72项模块测试、200关模拟触摸通过;浏览器375宽与320×568排版、200/200关提示前后及撤销重画的玩家填色像素检查通过。iPhone/Android真机音量、触觉及帧率待验收。 当前独立包:`NumberSwipe-campaign-200-r2-分层反馈二版-音乐与流动指路-20261022.zip`。主版与历史包保持原样。 # 分层反馈独立版验收记录(2026-10-22) 当前主版本保持不变。本目录是独立开发副本,版本标记为 `experimental-layered-feedback`,基于 `2026-10-22-resume-chapter-lessons`。不回写 Variants 主目录,也不覆盖其他工作树及历史发布包。 ## 使用与验证 解压独立包后导入微信开发者工具,重新编译并生成预览二维码。源代码目录运行: ```powershell node build.mjs node --test feedback.test.mjs resume-select.test.mjs bright-classroom.test.mjs hints.test.mjs lessons.test.mjs audio-copy.test.mjs node smoke.mjs ./package.ps1 ``` 浏览器验收页: ```powershell $env:NUMBERSWIPE_QA_PORT='17861' node qa/serve.mjs ``` 打开 `http://127.0.0.1:17861/qa/bright-classroom.html`,使用“反馈对照”选择原版/强化版。此页不发起触觉;原音效保存在 `audio-original/`,哈希记录在 `qa/original-audio-sha256.json`。正式设置只增加“振动”开关,没有强度滑杆。 ## 实现与参数 | 内容 | 实现 | 验收依据 | | --- | --- | --- | | 实际操作事件 | `layered-feedback-build.mjs` 在追加、回退、错误及完成处注入事件;每次原生触摸回调的插值批次统一提交声音和最高级触觉 | 高速单次移动跨三块得到 move、move、complete;序号与步号递增 | | 数字节点 | 固定数字大于1、步号匹配且现有规则无冲突;终点只发 complete | 合法但偏离唯一解的移动仍按普通事件处理,不用答案判断反馈 | | 回退确认 | `backtrack.mjs` 对原命中多边形并集的外边界计算距离,内缩 `min(3,0.06u)`;剔除异形内部拼接边 | 方形、凹口、六边与真实拖动测试;起手和前进命中未扩大,按钮撤销即时 | | 普通落格 | 120ms,最低缩放0.985;新桥100ms展开;数字、通道、墙门、命中轮廓不缩放 | `landingScale` 边界测试和原有200关几何回归 | | 数字节点 | 回弹最高1.035,260ms结束;原局部彩带最多两组;回退节点取消其彩带 | 多个节点先到达、后绘制的测试;通关清空未结束节点 | | 完成 | 即时完成章;庆祝沿用原2.6秒规模;实际 onPlay 在120ms内作为起点,否则锁定逻辑起点 | 迟到回调不重启;音频中断、后台、换关取消旧演出 | | 音频 | 四路:三路移动、一路节点/确认;普通音超过20次/秒合并到最新步号;通关停掉残留音 | 最新步号、四路停止、静音取消、回调代际测试 | | 触觉 | 独立键 `number-swipe:haptics:v1`,默认开;普通轻震70ms限频;节点中震替代轻震;完成中震后90ms轻震 | 关闭、预览、旧任务、迟到失败回调、短震降级测试;从不调用长震 | | 选关 | 始终每行3关,每章10关;通关绿色、当前紫色 | 四档手机尺寸与三列断言;截图 `qa/layered-feedback-three-columns.png` | 集中参数在 `src/feedback-params.mjs`。反馈调度和生命周期在 `src/feedback.mjs`,触觉适配在 `src/haptics.mjs`。四份上游快照未修改;所有规则、关卡、顺序、续玩存档、提示和手动下一关继续保留。减少动态关闭块体缩放和彩带运动,音效和振动分别控制。 重开、换关、选关退出、后台和音频中断会取消旧音频、触觉延迟任务与表现事件。硬件不支持强度时只降级为一次短震;不可用静默跳过。一次原生触摸回调产生多个插值事件时,视觉事件逐个保留,音频与触觉采用最高优先级,不补播过期的低级触觉。 ## 证据与结果 | 证据 | 结论 | 复现入口 | | --- | --- | --- | | 67项模块测试通过 | 事件优先级、回退确认、触觉代际、原音效哈希、音画同步与已有模块回归通过 | 上述 `node --test` 命令 | | 200关模拟触摸通过 | 关卡唯一解、合法移动、撤销重开、存档与分段指路未破坏 | `node smoke.mjs` / `validation.json` | | 浏览器200关稳定画面填色采样通过 | 开启提示和撤销重画后,玩家填色保持一致 | `qa/hints.html` | | 强化移动音第1/36步 RMS 约1503/555 | 高步号能量降低,36步逐半音关系仍在 | `feedback.test.mjs`、`audio-copy.test.mjs` | | 主版源文件基线逐项哈希一致 | 独立开发没有改写当前主版 | 工作区同级 `wechat-campaign-200-r2-layered-feedback-baseline.json` | ## 真机验收:待完成 | 设备 | 状态 | 仍需确认 | | --- | --- | --- | | iPhone | 未进行 | 轻/中震差别、90ms组合舒适度、高步号音色、密集关跟手、实际音画同步与帧率 | | Android | 未进行 | 强度不支持时的短震降级、连续震动舒适度、同上音效与性能项目 | 浏览器和模拟器结果不作为真机通过。本轮没有可用的iPhone/Android设备会话,没有上传或发布小游戏。