Skip to content

dulong-lab/tinymap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TinyMap

中文 | English

截图

轻量级二维瓷砖地图格式及其即时预览工具。为配合将 GIS 数据转为像素画瓷砖地图的项目而设计,目前成熟度有限,按需维护。

格式通过 AI 对话参考设计并人工调整,人工成分较高。查看器主要由 AI 生成,代码未经仔细审读,仍存在一些问题(如热更新时旧地图数据销毁前短暂无法操作),但作为即时预览已够用。

项目分为两部分:

  • spec — 地图格式规范(基于 JSON),定义了图层、瓷砖集、精灵集等结构
  • viewer — 基于 Tauri + PixiJS 的桌面预览工具,支持实时热更新

与同类工具的区别

对比 TinyMap Tiled LDtk
同层瓷砖叠加 稀疏图层支持同格叠加瓷砖(适合悬崖等场景) 不支持 支持
格式复杂度 极简 JSON,方便程序生成 中等 非常复杂
编辑器耦合 无编辑器信息,纯数据 包含 大量 (╯‵□′)╯︵┻━┻
即时预览 保存即刷新,无需手动操作 支持 不支持

下载

使用方式

  • 启动查看器后,拖入 .json 地图文件即可预览
  • 也可通过命令行指定文件:tinymap-viewer map.json
  • 地图文件或瓷砖图片发生变化时,视图自动实时更新,无需刷新

快捷键

快捷键 功能
Tab 显示 / 隐藏 UI 面板
Space 缩放至适应窗口
16 预设缩放(50%、100%、150%、200%、300%、400%)
Ctrl + 滚轮 以鼠标位置为中心缩放
中键拖拽 平移画布
F5 重新载入当前地图

地图格式

完整规范参见 spec/FORMAT.md,JSON Schema 参见 spec/schema.json

基本结构:

{
  "$schema": "tinymap-schema.json",
  "rows": 3,
  "columns": 4,
  "cellWidth": 32,
  "cellHeight": 32,
  "tilesets": [
    {
      "src": "ground.png",
      "columns": 8,
      "count": 64
    }
  ],
  "spritesets": [
    {
      "src": "objects.png",
      "align": 2, 
      "data": { 
        "xs": [ 0, 32],
        "ys": [ 0,  0], 
        "ws": [32, 64], 
        "hs": [32, 32]
      }
    }
  ],
  "layers": [
    {
      "name": "background", 
      "layout": "dense",
      "contentType": "tile",
      "data": [
        1, 1, 1, 0,
        1, 3, 3, 0,
        1, 4, 1, 2
      ] 
    },
    {
      "name": "objects", 
      "layout": "sparse",
      "contentType": "sprite", 
      "data": { 
        "idxs": [7, 7],
        "vals": [1, 2]
      }
    }
  ]
}
  • dense 图层 — 稠密存储,长度为 rows × columns 的一维数组,0 表示空位
  • sparse 图层 — 稀疏存储,仅记录非 fill 值的位置,同一位置可叠加多个 tile/sprite

开发

环境要求:Node.jspnpmRust

cd viewer
pnpm install           # 安装依赖
pnpm tauri:dev         # 启动开发模式
pnpm tauri:build       # 构建生产版本

许可证

MIT

About

A lightweight 2D tile map format and its instant preview tool.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors