Files
NumberSwipe_New/wechat-campaign-200-r2/README.md
T

52 lines
5.9 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.
# 数字一笔 · campaign-200-r2 微信小游戏
本包源于 G:\项目\NumberSwipe-Variants\campaign-200-r2,版本 scored-2026-10-15-r2。完整保留原版 200 关及 playOrder,不混入原 NumberSwipe 项目关卡,也不重新生成关卡。
## 导入
微信开发者工具 → 小游戏 → 导入本目录(含 game.js / game.json / project.config.json)。已经构建,不需要“构建 npm”。项目沿用 Variants 根配置中的小游戏 AppID;需使用有权限的微信账号登录,才能真机预览和上传。本次未执行上传。
内容包含原有基础、大块/异形、墙、通道、双色交替、奇偶、节奏门及六边盘面。保留 20 章顺序、全部选关、可关闭教学规则、手势插值、逐格回退、撤销、重开、指路、通关后手动下一关,以及原版半音音阶音效。音频改用随包提供的41个WAV文件和 wx.createInnerAudioContext 播放,保留半音上行与五类反馈音;关闭音效会立即停止,重新开启会播放试听音。微信版不再依赖浏览器振荡器。
选关界面用分页适配微信 Canvas。反馈通过微信原生输入弹窗填写;导出记录保存到小游戏用户目录,并在支持时打开微信文件分享界面。玩法、判定和盘面绘制仍直接使用 r2 模块,通过轻量宿主接口适配,不加载 WebView。
## 来源与验证
src/upstream 下 levels.json、rules.mjs、ui.mjs、audio.mjs 是上游原文件的完整快照,source-manifest.json 记录原始路径及 SHA-256。构建为 ui.mjs 注入微信宿主,替换音频、规则文案和浏览器下载记录入口。上游四个快照文件保持不变。发布包没有 design.json、作者解及反例文件。
存档 key 延续 variant:campaign-200-r2:v1,保存于微信本地;浏览器和微信存储彼此独立,不会自动迁移网页进度。
validation.json:200/200 唯一解及模拟微信触摸通关,撤销/重开/指路,前后台循环和存档/音效偏好恢复。原 r2 的 8 项测试也全部通过。尚需在微信开发者工具和手机检查显示、音效听感及平台兼容性;模拟验收不等于真机验收。
## 重建
此目录 src 保存完整适配源码。build.mjs 默认引用原 NumberSwipe 工程的 esbuild;如独立移动目录,需要将该 import 改为本机可用的 esbuild。运行 node build.mjs 后重新打包。smoke.mjs 会读 source-manifest.json 指定的上游路径检查哈希,然后对实际 game.js 做 200 关模拟验收。
## 真机音效及文案修订(2026-10-19)
改用微信原生音频播放器与本地音效资源;关闭后再次点“音效开”会播放试听音。新增6项音频/文案回归检查。进后台与系统音频中断时停止音效和延迟播放。错误不再静默忽略,可从只读状态的audio字段查询。
十类教学说明及组合规则采用具体动作与例子,例如“共边”改为“边挨着边,不能斜着走”,“奇偶”说明第1、3、5步与第2、4、6步。复杂规则可以分页阅读。关卡的布局、约束、顺序与原有微信存档保持不变。
修改后需要在开发者工具重新编译并重新生成真机预览,旧二维码可能仍加载旧包。自动测试验证播放调用和非静音音频资源,手机上的实际听感仍需真机确认。
## 通关按钮布局修订
通关后“下一关”独占底部操作栏,替换重开/撤销/指路;最后一关显示“返回选关”。盘面、反馈文字与操作栏固定分区,按钮出现时不挪动盘面。验证320×568、375×667、390×844、414×896四种尺寸下无按钮/盘面遮挡,且能正确跳转。
## 关卡动画教学(2026-10-19)
首次机制教学和手动规则页加入真实教学关卡画面,复用正式盘面绘制与规则判定,不制作独立示意图。文字说明与逐步动画同步,黄色光圈表示演示位置;墙和同色展示红色阻挡线,通道及奇偶展示变红、退回及正确路线。节奏门演示切换、穿过锁定及撤销穿门。支持重播、逐段阅读。组合关按实际出现的机制拆段说明,使用对应极简教学关,避免提前展示正式关解法。
演示独立于玩家路线、提示次数、存档及音效;关闭页面继续原关。后台停止绘制,返回时从头演示。新增 lessons.test.mjs 的11项教学检查;smoke.mjs 检查动画前后路线、错误状态、棋盘坐标和通关状态不变,并验证200关及窄屏规则页。仍需在微信开发者工具和手机检查实际动画与排版。
### 教学动画提速
整段演示固定约1秒,逐帧连续连线,去掉每格停顿与重复静止步骤。演示结束后停留在结果,点击重播可再次观看。
## 高亮分段指路与玩家填色(2026-10-20)
恢复高对比提示:点击“指路”直接显示最早未正确完成的一段,按起点、数字点、方向点、奇偶点和终点分段。提示为半透明白线、深色描边及连续流动白色光点;正确到达段末后消失,再次点击才显示下一段,暂不接广告。
提示使用独立透明 Canvas,每帧只清空提示层,并从中擦除玩家已经走过的格子区域;已画的连接段不再叠加提示。玩家棋盘及整格填色、数字、方向反馈继续由原绘制代码负责,双色关保留原有蓝/橙格色。撤销、重开会按实际路线恢复相应提示。
构建:node build.mjs。检查:node --test hints.test.mjs lessons.test.mjs audio-copy.test.mjs(23项),node smoke.mjs(200关,并比较点击指路前后玩家填色数据)。浏览器像素回归:node qa/serve.mjs 后打开 http://127.0.0.1:17859/qa/hints.html,检查200关前两步的已走格填色采样像素在开启提示、撤销再画前后相同;qa/hint-player-fill.png 为浏览器检查截图,不能作为微信真机截图。独立导入包通过 ./package.ps1 生成,只含运行必需文件。真机显示仍需手机预览确认。