2026-10-20 13:13:03 +08:00
2026-10-20 13:13:03 +08:00
2026-10-20 13:13:03 +08:00
2026-10-20 13:13:03 +08:00
2026-10-20 13:13:03 +08:00
2026-10-20 13:13:03 +08:00
2026-10-20 13:13:03 +08:00
2026-10-20 13:13:03 +08:00
2026-10-20 13:13:03 +08:00

上了个车 · LayaAir 可运行还原

当前版本:pass21(2026-10-18)

本地原创关卡 03(2026-10-20)

  • 独立资源 custom-origin-003,不占用、不修改原版主线 1—1636 的编号或映射;旧原创关卡已移出工程并留存在废纸篓。

  • 48×38“钻石织带”图形,共1824名乘客、5条车道、72辆车、5个初始车位;中央菱形随层数扩张再收拢,两侧为镜像翼面。

  • 车辆不再使用手写车道表:seeded-solvable-v1 根据固定种子生成层内顺序、安全前置层、诱饵车道和后段均衡队列。

  • 调关参数集中在 tools/custom-level-config.json;修改种子、中央菱形宽度、安全层数或诱饵层范围后,重新运行生成器即可。

  • 入口:关卡图鉴底部“试玩原创关卡 03”,或本地地址参数 ?version=pass29&custom=1。

  • 设计尺寸来自当前已恢复原关卡的静态统计;实际可玩性以本地运行验收为准。

  • 这是基于当前还原逻辑制作的原创试玩关,不代表原版官方关卡或原版策划规则。

  • 线上主页;默认地址也进入主页,显式 level 参数仍可直达关卡。

  • 主页开始/继续、游戏返回主页、首页设置、作品预览与278幅作品翻页已接入;通关后的本地拼豆奖励、填色与进度保存有回归。

  • 修复嵌套FGUI状态覆盖、文字/字号覆盖、部分尺寸关系和Loader等比填充;不是所有UI类型或原Shader的完整还原。

  • 前50主线仍只有17个真实资源可用,新增主线地图0;缺map_19/map_21,不能把作品图或同名数字地图充作原版主线。

  • 皮肤、角色收藏、称号、成就领奖与在线排行榜规则尚未接入,入口明确显示限制;激励仍为本地模拟。

  • 外网主页/移动触摸与第3关实际两车60人回归通过;合成奖励/布局夹具另有标记。详见 artifacts/home-levels-20261018/验收说明.md。

以下2026-10-17及初始记录属于历史阶段,以本节和对应版本验收报告为准。

打开方式

  1. 用 LayaAirIDE 3.3.9 打开本目录。
  2. 等待资源导入完成。
  3. 点击“运行/预览”。

微信小游戏开发版

  • LayaAirIDE 选择“文件 → 构建发布 → 微信小游戏”,填写目标小游戏 AppID 后构建。
  • 输出目录应为 release/wxgame,再由微信开发者工具导入、编译、真机预览和上传开发版。
  • 微信运行时优先使用 wx 的启动参数、缓存、剪贴板、震动和分享接口;Web 预览继续使用浏览器回退实现。
  • 为控制首包体积,微信版本从 https://slgc-j3k323ol-pass20.sealoshzh.site/ 动态加载关卡与美术资源。该域名必须先在微信后台加入合法的 downloadFile 域名。
  • 构建后运行 node tools/verify-wxgame.cjs release/wxgame,检查必需文件、AppID、竖屏设置和 4 MiB 首包限制。
  • 已接入 wx.createRewardedVideoAd、完整观看判定、失败不发奖及奖励补发记录。正式微信环境不会模拟发奖;在 src/Main.ts 填入后台创建的 adunit-... 激励视频广告位 ID 后才能展示广告。
  • 工程包含从发布包恢复的资源;公开上传或发布前必须确认完整分发授权。

2026-10-17 校准说明

动态与交互修复

第二轮逐帧校准:

  • 修正车门世界/局部坐标混用。复合开门姿态按录像轮廓拟合,闭合回到局部 (0,0,0),关闭完成后再离场。

  • 车列补位使用绝对排位坐标,缩放插值回到当前排尺寸;连续快速点击也不会累计位置或尺寸误差。

  • 停靠纵向位置由 z=-1 校准为 z=-2.8,修正车身在原版车位参考中偏上的问题;车辆向屏幕左侧转弯离场。

  • 状态改为预约乘客、原格占用、在途、实际上车。原格在人物中心实际移出后才开放;loaded/cleared 只在到达车门时增加,座位预约独立计数。

  • 行走路线先检查当前占用;前序乘客没有离开时后续乘客等待。空白区域采用视线缩短和圆角插值,增加平滑转向及简单跟随减速。这是重建算法,尚未证实与原版寻路一致。

  • 已停车辆在新通路实际出现后重新寻找乘客;未满载时保持开门等待,不再每一批补客都开关一次门。

  • 接入原包的 Effect_Star.png、effect_BusSmoke.png,灯束按车头投影方向跟随;增加接近满位时的橙色警示。粒子播放曲线和警示阈值仍为兼容重建。

  • tools/verify-dynamics.cjs 覆盖人数守恒、重复预约、占用格路径、数字绑定、闭门后离场、向左离场、连续补位、六槽并发、已停车补客及重开取消。

  • 中途追加的连续点击合并到同一动画批次的撤销快照,避免撤销到只有半套在途数据的状态。

  • 所有候车节点均创建并绑定数字,第三排平时隐藏、提升到可见排时显示;前车离队后立即补入新的候车节点。

  • 车辆和人物在一次操作结束后持续保留,不再整体销毁重建;已停车辆补客复用与首次上车相同的动画和数字更新过程。

  • 人物按路径距离计算行走时长,经车门进入;到达时扣数字,零显示片刻,关门完成后车辆沿曲线转向离开,离场后释放车位。

  • 灯光沿车辆位置投影跟随,入车和消除反馈使用恢复出的光效纹理。

  • 设置支持音效、暂停、倍速、撤销、重开;速度入口切换 1/2 倍速。加车位和刷新在动画结束后可用,以免中途销毁正在运行的节点。

  • 消除采用明确标注的本地试玩规则:选择已停车辆,同时移除其剩余容量对应的同色乘客。道具面板提供免费试玩入口,尚未恢复原版商店、广告或支付服务。

  • 增加通关、满车位提示;重开时取消旧场景定时回调,避免旧动画改动新关卡。

  • 曲线、速度、弹窗和道具规则属于重建实现;不代表已验证原版逐帧一致或原始算法已恢复。

  • 人物与车辆恢复面向,修正正交相机下的左右镜像映射;车列点击区域随车列对齐。

  • 人物使用原网格与 Idle/Run 动画;车辆使用原网格、车门和按 sRGB 加载的原版颜色纹理。

  • 车辆数字跟随车辆投影,后排数字半透明,前排提升后恢复不透明。

  • 根据 artifacts/original-level1-normalized.png 校准人物密度、白色脚底、绿色下沿、背景和底部入口。

  • 第 1 关的 applyObservedLevelAppearance 是截图推导的重建配置,不是从代码恢复的原版规则。原始关卡文件保留不动;reconcileReferenceQueues 使每种颜色的车辆总容量与重建棋盘人数相等。

  • 原版 ToonLite1 材质尚未移植,当前材质、灯光特效插值和部分运动轨迹仍是兼容实现。

  • artifacts/optimization-comparison.png 是本轮原版与运行预览的同尺寸对比。

初始实现记录(以下为早期状态,不代表当前验收结果)

  • 使用提取到的 1–50 关原始关卡 JSON。
  • LayaAir 3D 场景:原始车辆网格、车辆队列、停车区、灯光与正交相机。
  • 已接入原包 walker_static_atlas.png,按关卡颜色绘制原始乘客形象。
  • 已按微信实机第 1 关校正人物颜色映射、棋盘比例、6 个停车位、车辆队列间距、背景分区和底部功能入口。
  • 已从原包 Game_atlas0.png 裁取设置、升级、消除、刷新、商店图标。
  • 车辆选择后增加近似上车移动反馈,并对连续点击做了动画期间节流;该路径不是原版寻路证据。
  • 可玩逻辑:前车选择、同色边界乘客上车、容量结算、车位失败、撤销、重排、加车位、关卡切换。
  • 已实际加载原包的场景背景纹理与解压后的 LAYAMODEL:COMPRESSION_0501 车辆网格;assets/resources/original 同时保存 UI 图集及旧版 Laya 资源样本,用于后续逐项替换。

已知边界

  • 这是根据发布包重建的可编辑工程,不是原始开发工程。
  • 车辆和静态乘客美术已经接入;原人物骨骼动画、车辆完整材质、车影、特效与完整弹窗 UI 尚未迁移。
  • 当前“可接乘客”采用边界暴露近似规则;原作的完整寻路、特殊格与动画仍需逐项验证。
  • 未获取的关卡分包不在工程内。
  • 原始资源仅建议用于本地研究和验证,不应直接公开发布。
S
Description
拼豆游戏
Readme
96 MiB
Languages
JavaScript 98.9%
LiveScript 0.6%
TypeScript 0.4%