跳到正文

真实地图基底 ​

data/map/basemaps.json 记录每个子关卡的底图与「图鉴归一化坐标 → 图片像素」的变换; 图片随包分放在 data/map/maps/*.webp。

坐标与变换 ​

图鉴坐标是每单位独立的归一化空间:原点在底图取景框西北角,y 向下(向南)增大。首版变换是 纯比例映射,不含平移、旋转与镜像:

text
u = x · W        v = y · H

因此 transform.matrix 恒为 [W, 0, 0, 0, H, 0],coordinate_y_axis 为 down。 不同子关卡的 [0,1] 空间互不相通,不存在全局地图坐标。

变换不是拟合出来的:gameflow 的 MapData 自带西北/东南两个标记摆件,Campsite 又同时带 归一化坐标与世界摆件,两侧配对求解得到零残差映射。

覆盖 ​

  • 42 个单位有底图,每个单位恰好一张,没有“一图多单位”;
  • 291 条带位置条目中 277 条(95.2%)落在底图不透明区域;
  • 未覆盖的单位(如克劳馥庄园、多数挑战古墓与特殊区域)保持散点;
  • 14 条落在透明留白的条目,坐标本身没有错,界面用虚线外环标出。

状态与精度 ​

状态条件
unverified三个误差字段必须为 null
approximate中位误差 ≤ 2% 图片对角线
calibrated中位 ≤ 0.5% 且 P95 ≤ 1% 图片对角线

当前 42 条中 7 条为 calibrated(241、243、318、682、2287、2306、4026,共覆盖 212 条 带位置条目),其余 35 条为 approximate——变换同样是解析恒等映射,只是条目数不足以做统计验证。

图片 ​

  • 随包分发;42 张 WebP,约 48 MB;
  • 开发期由 Vite 中间件映射到 /basemaps/maps/*,构建期作为 asset 输出;
  • 设置 BASEMAP_IMAGE_ROOT 可临时改用其它目录;
  • 目录不存在时前端拿不到图片地址,自动回退散点。

校验 ​

powershell
cd apps/desktop
pnpm contract:images   # 存在性、字节数、SHA-256、WebP 实际尺寸
pnpm contract:check    # schema + 真实数据集 + 夹具

来源 ​

底图来自 spriters-resource 的三份投稿,作者 vi7ual(2025-12-18 提交,投稿 502127 / 502132 / 502133)。站点声明素材供个人项目与非商业用途;本项目按非商业方式随包分发,版权仍归原权利人。

完整说明见 data/map/README.md。

代码采用 MIT;游戏数据事实与地图素材各自保留原权利。