Files

125 lines
15 KiB
Markdown
Raw Permalink 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.
## 2026-10-23:过关音乐跨关续播与iOS切关排查
版本2026-10-23-jingle-through-next,基于dc83712(已发布A3,包含6abbc37与8f2263b)。独立包:../releases/NumberSwipe-main-A3过关音乐跨关续播-20261023.zip。保留旧发布包和解压目录,不上传、不推送。
- 用户真机对照:iOS中完成音/彩带播放期间立即点击下一关会卡一下;关闭音效后不卡。旧代码start→feedback.reset→audio.stop会向正在播放的完成音发出stop,并立刻finishComplete→BGM恢复。实际旧/新游戏包调用链对照见qa/jingle-next-trace-20261023.json,属于原生调用指令取证,不是iOS耗时测量。
- 按用户新要求,切关只取消旧关视觉、震动和过期落格音;保留正在播的3秒过关短音乐,既不stop、不改src,也不重播。BGM继续保持基础音量25%,由这首短音乐自身的自然结束回调恢复正常。
- 完成音占用第四路期间,新关卡移动、节点、指路和按钮音效借用原有三路普通池,保持四路音效上限,不抢占完成音;保持短音乐音量0.6375、基础BGM音量0.119及音高规则。
- 普通换关和重开保留正在播放的完成音。关闭音效、后台/音频中断、播放失败仍按原规则取消;再次完成新关卡维持完成反馈优先级。旧结束回调不能把新一轮完成音的BGM提前恢复。
- 检查包含117项模块测试、200关触摸回归及旧/新调用链对照。针对用例覆盖真实下一关按钮、规则/UI/节点不抢占、自然结束恢复、后台与静音、连续完成和异常分支。日志见qa/jingle-next-check-20261023.txt。
- 本版已移除“点下一关时停止正在播的完成音”的原生调用,但尚无本机iOS性能追踪;不能将浏览器或测试替身的结果称为真机卡顿已消除。请用新包真机复测这一明确时机。
## 2026-10-23:A3明亮软糖指路(包含6abbc37)
版本2026-10-23-soft-ribbon-a3-bright,以6abbc37为基础,包含iOS通关早点击负载优化、奇偶节点彩带、选关/规则/设置统一音效、设置冒号和“乐”字字重修复。独立包:../releases/NumberSwipe-main-A3明亮软糖指路-20261023.zip。旧包、旧解压目录不变;不上传、不推送。
- 按用户A3交接接入Canvas程序化软糖带,不使用PNG。保留0.235带宽比例(7–26逻辑像素)、圆润接缝、0.39pitch端点消隐;移除旧箭头、细白芯、双描边和目标圈。
- 原参数对照保存在docs/design/bright-classroom/concepts/hint-soft-ribbon-a3.tokens.json;有效提亮参数在同目录hint-soft-ribbon-a3-bright.tokens.json及正式tokens.json的hintSoftRibbon命名空间。杏橙主体提亮、柔冠由低透明暖白增至0.24、棕影由0.15降至0.09;尺寸、速度和呼吸周期保持设计值。
- 一段一个宽亮斑按真实弧长流动(60px/s,最短周期1800ms)。玩家落格不重置分段时钟;只过滤已走边,使用独立带面画布source-atop,帧帧从干净静态带面开始。
- 目标取真实单元轮廓,材质/桥→目标柔光→实际数字/规则符号/墙门依次合成;目标缓慢呼吸(2200ms,0.65–1),不缩放、不复制或写死目标数字。玩家已走格及外晕在软糖和目标光两层都排除。
- 弧长、合法圆角、静态带面和目标材质/符号层缓存;支持矩形、异形、孔洞和六边形。完成段、重开、换关和后台释放旧绘制状态;不支持离屏合成时保留静态带面。
- 新增6项A3模块测试,并更新旧箭头视觉断言。200关指路填色像素一致;完整测试/200关触摸记录见qa/a3-check-20261023.txt。浏览器尺寸与样张验收入口为qa/bright-classroom.html的“A3尺寸与动画验收”。微信/iOS/Android真机帧率与混合效果仍需上传后复测。
## 2026-10-23:iOS通关早点击与界面反馈修复
版本:2026-10-23-ios-clear-ui-fix,基于0cefce4。独立新包:../releases/NumberSwipe-main-iOS通关切换与界面反馈修复-20261023.zip;旧包及旧包解压目录保持原样,不上传微信,不推送远端。
- 用户真机复现条件为iOS微信小游戏,彩带播放后立即点击下一关会卡顿,稍后点击正常。上版通关时以“clear”新键重启下一关材质预热,与动画争抢时间。本版删除重复启动,通关停止预热;点击下一关先取消旧动画帧和预热,再执行切换。
- 通关静态背景在落格动画收束后保存一次,庆祝帧只合成背景和彩带,不反复绘制全部UI。设置、规则、尺寸变化、后台及换关会使背景失效;不等待2.6秒庆祝结束即可切换。
- 奇偶节点的有效落格现在开启原有局部彩带,方向节点仍保留音效、缩放与振动;最后一格只执行完成反馈,两组节点彩带上限不变。
- 游戏内选关、规则、设置和返回游戏统一使用现有audio/ui.wav。通关最初120ms内也允许按钮音效;不改变静音偏好。
- 设置统一为音乐:开/关、音效:开/关、振动:开/关。“乐”在旧Sans字体子集中缺失,已补齐500/600/700三个实际字重并保留原字库覆盖;数字和标题字形资源保持原样。
- 验收:104项模块测试;200关触摸回归;新增通关后0/40/110/300/3000ms切关及演出背景复用、统一按钮音效和字体覆盖测试。浏览器真实Canvas20组早点击切关记录见qa/ios-clear-browser-20261023.txt。
- iOS真机待复测。浏览器不替代真机性能验收;交专门打包上传会话上传后,重点验证连续过关立即切换、静音/后台恢复和不同密度关卡。
## 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:BGMA连续播放与节点缩放强化
关卡只使用BGMA,移除运行包BGMB;选关音乐保留。音乐基础音量降低15%:选关0.136,关卡0.119。过关短音乐起播时压低到基础音量25%,结束、取消或播放失败后恢复;切关不停止或重播BGMA。音乐和音效开关保持独立。普通格峰值1.1、特殊节点峰值1.3,回弹时长仍为90ms。构建目标ES2019,兼容微信上传打包器。
## 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。之前主版本包保留。
# NumberSwipe 正式主版本
本目录是唯一正式微信主工程,属于 NumberSwipe_New 仓库 main 分支。2026-10-23 已将分层反馈、音乐与流动指路强化版提升为主版本。版本以 release-info.json 为准。
## 开发与验收
需要 Node.js 22+、npm。首次克隆后在本目录运行:
```powershell
npm ci
npm run check
npm run package
```
微信开发者工具导入本目录,或导入仓库根目录(根配置已指向这里)。构建使用本目录锁定的 esbuild,无需原 NumberSwipe 目录。烟测使用仓库内相邻 campaign-200-r2 的上游文件及快照哈希;移动整个仓库后仍有效。字体、音效、音乐与上游快照均随仓库保存。现成字体可直接构建;仅重新制作字体时另需 Python fonttools 和字体原始文件(见 build-fonts.py)。
## 协作
从最新 main 创建 codex/主题 分支,在本目录修改、构建、测试,通过评审后合并 main。每次发布更新 release-info.json,运行打包命令;输出 ../releases/ 下对应版本名。不要把独立旧副本当作主目录,不要将本机绝对路径或跨仓库依赖写入脚本。网页 campaign-200-r2 是关卡来源及历史网页版本,不是本微信主版本。
当前版本保留200关、原存档兼容、分层音效、BGM、振动设置、三列选关及流动指路。真机听感、振动与性能仍需微信预览验收。