feat: expand campaign and refine puzzle visuals and controls
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# HEX TRAILS · 转转六角
|
||||
|
||||
一款竖屏六角轨道解谜游戏:点击箭头棋子,让它沿轨道离场;旋转底盘改变路线,在有限步数内清空棋盘。
|
||||
一款竖屏六角轨道解谜游戏:观察路线,点击箭头棋子让它离场;免费旋转底盘和尝试路线,在清楚的反馈中逐步清空棋盘。
|
||||
|
||||
项目使用原生 JavaScript ES modules 和 Canvas,无第三方运行依赖,无在线字体或 CDN。包含 24 个主线关卡、关卡工坊、求解器、确定性关卡生成器,以及 Cocos Creator 适配示例。
|
||||
项目使用原生 JavaScript ES modules 和 Canvas,无第三方运行依赖,无在线字体或 CDN。主线按 48 关、8 章 × 6 拍制作,并提供关卡工坊、求解器、确定性关卡生成器,以及 Cocos Creator 适配示例。
|
||||
|
||||
## 快速开始
|
||||
|
||||
@@ -25,16 +25,20 @@ npm run dev
|
||||
- 点击棋子,从箭头方向进入轨道;弯道自动转向,交叉处不换轨。
|
||||
- 点击左右旋转按钮,或沿棋盘边缘拖动,将底盘旋转 60°。棋子的位置与箭头方向保持不动,底板格子与轨道配对一起旋转。
|
||||
- 棋子不能穿过其他棋子。碰撞检测覆盖整段运动路径,包括弯道与邻格擦碰;碰撞动画展示接触后退回原位。
|
||||
- 点击棋子或旋转底盘各消耗 1 步,碰撞也扣步。撤销恢复棋盘、棋子、朝向和步数;没有倒计时。
|
||||
- 只有成功移除棋子消耗 1 次预算;旋转和失败试路均免费。主线预算等于初始棋子数,只表示剩余消除工作量,不惩罚试错。撤销恢复棋盘、棋子、朝向和计数;没有倒计时。
|
||||
- 提示会高亮可安全离场的棋子,或建议旋转方向。棋子配色不影响规则。
|
||||
|
||||
主线关卡均经过求解验证,且需要旋转才能完成。所有关卡可自由选择,通关进度保存在当前浏览器。音效使用 Web Audio 合成,首次交互后启用,可在设置中关闭并保存偏好。
|
||||
主线每章按“进入 → 换路 → 展开 → 小挑战 → 释放 → 长局回报”安排,不按难度分数单调排序,也不要求每关必须旋转。早期就可使用 37 格棋盘,后期舒缓关使用 61 格延长熟悉操作的体验;19 格小棋盘也可承担局部挑战。棋盘规模与认知难度分别记录。
|
||||
|
||||
主线发布要求包括完整可解、每枚棋子在六个朝向下的独立路线无闭环,以及参考解答中的阻挡可解释、旋转后有明确进展;这些门槛不代表玩家任意旋转或点击序列都不会遇阻。制作方向见 [玩法方向](docs/gameplay-direction.md),逐关生成与验收记录见 [主线审阅报告](docs/campaign-review.md),验证结果以实际生成报告和测试输出为准。
|
||||
|
||||
所有关卡可自由选择,通关进度保存在当前浏览器。音效使用 Web Audio 合成,首次交互后启用,可在设置中关闭并保存偏好。
|
||||
|
||||
## 关卡工坊
|
||||
|
||||
工坊支持 19 格和 37 格底板、棋子方向与配色、15 种轨道配对、单格轨道旋转和整体底盘旋转;还提供擦除、路径检查、撤销编辑、试玩、随机生成、本机单槽存档及 JSON 导入导出。
|
||||
工坊支持 19、37、61 格底板、棋子方向与配色、15 种轨道配对、单格轨道旋转和整体底盘旋转;还提供擦除、路径检查、撤销编辑、试玩、随机生成、本机单槽存档及 JSON 导入导出。
|
||||
|
||||
试玩不修改草稿,也不计入主线进度。工坊与正式游戏共用碰撞及求解规则,显示可解性、必要旋转数、最短步数与结构难度评分。搜索达到上限时显示“尚未确定”,不直接判定无解。
|
||||
试玩不修改草稿,也不计入主线进度。工坊与正式游戏共用碰撞及求解规则。分析器区分最少消除成本 `minimumMoves=N` 与最少交互数 `minimumActions=N+R`,其中 `R` 是最少旋转数;自定义预算不足 `N` 时仍会报告预算不足。认知难度与工作量分别提供,搜索达到上限时显示“尚未确定”,不直接判定无解。
|
||||
|
||||
不具备六重旋转对称性的导入底板会禁用整体旋转。导入失败保留当前草稿;不可解关卡仍可保存用于调试。浏览器存档不会跨设备同步,需长期保存或分享时请导出 JSON。
|
||||
|
||||
@@ -47,7 +51,7 @@ npm run dev
|
||||
| `npm run dev` | 启动本地开发服务,默认端口 4173 |
|
||||
| `npm test` | 执行 Node 内置测试套件 |
|
||||
| `npm run build` | 生成设计资源并输出静态站点到 `dist/` |
|
||||
| `npm run levels` | 使用固定种子重新生成关卡,同步两个关卡数据文件 |
|
||||
| `npm run levels` | 使用固定种子重新生成 48 关,同步关卡 JSON、共享模块和逐关验收报告 |
|
||||
| `npm run design` | 生成颜色 token、CSS、JSON、PNG、对比度报告和设计指南 HTML |
|
||||
| `node scripts/serve.mjs --dist` | 本地预览构建产物 |
|
||||
|
||||
@@ -89,8 +93,16 @@ Cocos 示例复用规则、碰撞、渲染命令和图集;HTML 控件、文件
|
||||
|
||||
自动测试覆盖主线完整解答、生成关卡、旋转与撤销、弯轨寻路、连续碰撞、闭环、导入校验,以及设计颜色对比度和图标裁切。测试结果以当前 `npm test` 输出为准。
|
||||
|
||||
界面变更还需在浏览器检查竖屏布局、旋转、碰撞回位、弹窗和工坊导入导出;自动测试不替代实机交互验收。较小屏幕可能需要纵向滚动。难度评分是结构估计,尚未通过玩家数据标定。
|
||||
界面变更还需在浏览器检查竖屏布局、旋转、碰撞回位、弹窗和工坊导入导出;自动测试不替代实机交互验收。较小屏幕可能需要纵向滚动。认知难度评分不直接加入棋盘规模,仍是未经玩家数据标定的结构估计。工作量中的估计秒数也只是内部制作假设,不能当作真人平均通关时长。
|
||||
|
||||
`cocos/` 是适配示例,不是完整 Creator 工程;原生场景及 Android/iOS 构建尚未完成验收。`docs/ui-layout.json` 是旧版布局快照,不应直接作为当前场景模板。
|
||||
|
||||
更多背景见 [视频与规则分析](docs/video-analysis.md)。
|
||||
|
||||
## V2 色彩与离场展示
|
||||
|
||||
打开 `http://localhost:4173/design-showcase.html`,切换五套关卡主题并播放离场动效。主线按难度使用四套背景,12 色棋子库在每关收敛为 3–4 色;编辑器开放全部 12 色。每周挑战目前为独立美术主题预览,尚未实现周赛功能。规范与色库详见 `Design.md`。
|
||||
|
||||
## 视频 UI 实验室
|
||||
|
||||
[Hex Video Lab](labs/hex-video/index.html) 是基于 `examples/hex.mp4` 的独立 UI / 特效复刻,可切换地图、棋盘和领奖场景,支持自动试玩、单片翻转、彩纸、金币飞入、慢速播放及参考帧对照。棋子按本项目要求保留单片薄侧边,不使用视频中的多片堆叠。运行 `npm run dev` 后访问 `/labs/hex-video/index.html`;详见 [复刻笔记](labs/hex-video/README.md)。
|
||||
|
||||
Reference in New Issue
Block a user