Files
main_plugin_farm/docs/13-insect-coordinates-deferred.md
T
2026-10-19 17:25:25 +08:00

2.9 KiB
Raw Blame History

虫子坐标与资源

状态:2026-10-19 用户已授权接入。已从下载的主场景包提取虫子 38 帧及公共种子、枯萎图,共 40 张图片,保存于 src/farm_render/source_assets。manifest 保留源 URL、文件哈希、 原图尺寸及统一位置,不保存网页作物 ID。正式静态渲染按虫序稳定选帧, 资源导出脚本将全部帧打包;核心虫害规则见 16-pest-mechanics.md。

新确认的普通 WebGL 绘制规则

WebGLMainSceneLandController.lua 第 279~282 行定义:

PestPos = [(-26, 13), (-5, 42), (24, 24)]

第 320~330 行按照 landData.pest 数量创建 mainscene#Pest, 以 PestPos[i] 设置虫子对象的 localPosition。 父节点是 LandsPestAndWeedContent/LandN/PestAndWeedContent; 对应土地父容器与土地矩形中心对齐。Unity 坐标 x 向右、y 向上。 普通控制器在 step < 6 时显示虫草;上述坐标与作物种类无关。

主场景包存在 land/webgl/pest.prefab,其根节点为 Pest, 矩形尺寸 22 × 30,pivot=(0.5,0.5),localScale=(1,1,1), 带 Image 与 Animator;初始 Image 引用精灵 pest1。 预制体初始位置会被运行时的 PestPos 覆盖,不能当作最终位置使用。

若使用原版单位并设统一场景倍率为 s,地块中心是 (Cx,Cy), 虫子对应坐标为 (u,v),则输出画布中的虫子矩形左上角是:

left = Cx + u × s - 22 × s / 2
top = Cy - v × s - 30 × s / 2

这是预制体矩形定位;38 帧完整画布均为 44×60,显示尺寸为 22×30。 动画包的采样率为 24,开启循环;本次聊天图片输出不播放动画。 虫子不应套用作物的 0.75 缩放,需遵循其自身预制体尺寸。

已搜索 Lua 包内 2178 个 TextAsset:未发现 .insect 或 ["insect"] 的直接字段读取;普通及时间农场控制器存在 PestPos。 这不能证明 C# 或其他未分析路径从未使用 insect 字段, 但已确认普通 WebGL 控制器本身采用上述固定位置。

已保存的证据

原始数据保留在 captures/qq-farm-2026-10-19/crops.json 的 insect 字段。 这是离线捕获文件,不进入业务数据库,不引入网页作物 ID。

草莓原始值:

0,0,0,0,0,0|50,10,65,-30,110,-2|50,10,65,-30,110,-2|0,0,0,0,0,0

字符串包含 4 组数据;每组 6 个数字,可按 3 对坐标进行语法解析。 组与阶段的关系、全零的含义、坐标原点和缩放方式均未核验。 不能直接将这 4 组映射为本地 6 个生长阶段,也不能当作作物位置。

剩余验证事项

  1. 如需动画消息,另做动画编码、平台能力和上传验证。
  2. 网页虫子实际画面与本地绘制对照仍未进行在线像素级验收。
  3. 如需使用旧 insect 字段,另查其消费者,不能覆盖已确认的普通 WebGL 规则。

绘制层读取渲染配置,不污染交易状态,不引入网页作物 ID。