HEX Video Lab 01
独立的 UI / 动效实验室,入口:http://localhost:4173/labs/hex-video/index.html。根目录运行 npm run dev;npm run build 会将 lab 一起输出到 dist/labs/hex-video/。
完整用色分析见 designv2.md 与 离线 HTML 手册,按项目 Design.md 结构整理,并附原尺寸参考帧、采样记录与色板。
视频研究
来源:examples/hex.mp4,416 × 960,约 30 fps,193.405 秒。已检查全片每 4–5 秒抽帧,并检查旋转器教学附近连续帧。
| 时间 | 可观察内容 | Lab 实现 |
|---|---|---|
| 00:00 | 蓝青径向背景、竖直关卡线、顶部货币/体力、绿色开始按钮 | 地图场景,可选择关卡编号并进入试玩 |
| 00:05–00:35 | 浅灰背景、顶部操作栏、六边形灰底与彩色箭头,离场后露出底板 | 共用现有 Game / trace / swept collision;18 片可解实验棋盘 |
| 00:10–00:11 | 同色多片连续翻转离场 | 按用户要求适配为一片翻转,侧壁仅 4 px(逻辑画布 416 px 宽),不画堆叠或副本 |
| 00:40–00:45 | 蓝色胜利页、放射光、金币堆、收集按钮 | 旋转光芒、金币浮动、10 枚金币沿二次曲线飞入余额 |
| 01:48–01:52 | 暗色遮罩、淡蓝圆角教学卡、旋转器示意 | 解锁弹窗;旋转操作使用本项目整块底盘规则 |
| 01:52–03:00 | 更多形状、旋转器关卡、重复彩纸反馈 | 保留统一实验棋盘;双侧粒子喷发可独立触发 |
| 03:00–03:13 | 领奖与返回地图,包含商店平台画面 | 收集后返回地图,实验余额及关卡编号更新 |
视频多片叠放不等于单片本体很厚。本 lab 的美术约束是:薄侧边、轻倒角、轻投影,移动中也只渲染一片;不模拟视频的堆叠玩法。
交互与参数
- 三个场景独立切换;自动演示通过真实可离场查询逐片清空,并自动进入领奖页。
- 被阻挡的棋子向接触位置轻碰后返回,不扣操作数。撤销、提示、底盘旋转可用。
- 动画速度 0.25×–1.5×;彩纸可单独触发;可开启轨道辅助线与参考帧对比。
- 设置中可打开简单合成反馈音;默认静音。尊重系统减少动态效果偏好。
- 桌面提供检查面板,窄屏上下排列;键盘 Tab 可聚焦棋子,Enter 操作;弹窗支持 Escape。
- 试玩数据不写入主项目存档;地图编号仅用于 UI 演示,所有节点使用同一可解棋盘。
文件与移植
lab.js 负责 Canvas 棋子、单片翻转、粒子、金币曲线与场景交互;lab.css 负责 UI;fixture.js 提供确定性可解关卡。共用 src/core.js、src/geometry.js、src/path-math.js,未更改正式游戏玩法。
reference/ 的 JPG 是从视频提取的对比素材,不用作棋子或背景贴图。UI、棋子、金币、光芒均为 CSS / Canvas / SVG 重绘。图标和角色采用简化占位,没有复制原游戏角色、商店或平台 UI。色值、动效时长是视觉近似,不是从原游戏资源获取的精确参数。
当前是浏览器 lab;未做 Cocos 或微信真机验证。
HTML 手册包含可搜索/复制色板、原尺寸参考帧灯箱、箭头对比示例和完整正文,图片全部内嵌。修改 Markdown 或采样 JSON 后运行 npm run design:v2;根项目 npm run design 也会同步生成。