Tiled 地图编辑器使用指南:从零搭建 2D 游戏地图的完整流程
【免费下载链接】tiledFlexible level editor项目地址: https://gitcode.com/gh_mirrors/ti/tiled
当你需要在几十张瓦片上手工拼出一条带正确边缘过渡的地面,还要为每个敌人标记出生点、给每块可踩的瓦片画碰撞框时,Tiled 地图编辑器就是为这种工作设计的:它用瓦片图层、对象图层和自定义属性把 2D 关卡编辑整合进一个窗口,输出 TMX/JSON 等格式供游戏引擎读取。
为什么选 Tiled:三个理由
- 五种地图投影(正交、等距、交错、斜投影)加上不限尺寸与图层数量的自由布局 → 同一套工具能覆盖平台跳跃、RPG、塔防等不同玩法的关卡需求。
- 地图、图层、瓦片、对象四级对象都可挂自定义属性 → 关卡数据不只是贴图,出生点、触发器、掉落表这类游戏逻辑可以直接标注在地图里。
- 自带多套导出格式(Defold、Godot
.tscn、GameMaker.gmx、YY、.tbin等)并支持脚本扩展 → 不需要为不同引擎维护不同的关卡资产。
Tiled 地图编辑器上手流程:从安装到导出第一张地图
三种安装方式
- Windows / macOS:官方 Release 提供签名安装包,双击即可安装。
- Linux:推荐 AppImage 或 snap / Flatpak,都是官方发布渠道;发行版自带的包通常版本偏旧。
- 源码编译:依赖 Qt 6.2 以上和 qbs 构建工具,命令为:
sudo apt install qt6-base-dev libqt6svg6 libqt6test6 \ qt6-l10n-tools qt6-declarative-dev zlib1g-dev qbs新建地图与导入瓦片集
首次启动后,建议先通过File -> New -> New Project建一个项目文件并放在项目根目录,后续所有素材都能在 Project 视图里快速访问。接着File -> New -> New Map(Ctrl+N)创建地图:选择地图类型(Orthogonal / Isometric / Staggered 等)、瓦片尺寸和地图大小,所有参数事后可改,不必一次纠结。
然后File -> New -> New Tileset导入瓦片集:用 Browse 选择一张包含多个瓦片的 PNG,按实际设置 tile size(如 32x32)。注意:如果原图瓦片之间有留白,要正确填 margin 和 spacing,否则选中的瓦片会偏移。官方示例图tmw_desert_spacing.png的 32x32 瓦片各带 1 像素 margin 和 1 像素 spacing。
绘制地形层并添加碰撞形状
用 Stamp 工具在瓦片图层上直接"画"地形,这是编辑瓦片图层的主工具,也支持画直线和圆。对于草地、道路这类需要自动过渡的地形,可先在瓦片集里定义 Terrain Sets(Corner / Edge / Mixed 三种布局),之后用 Terrain Brush 刷地形,Tiled 会自动挑出正确的过渡瓦片。
碰撞是新手最常漏掉的一步:打开 Tile Collision Editor,在瓦片上绘制矩形、多边形或胶囊碰撞形状,引擎就能据此判断角色能否落脚。碰撞形状保存在瓦片集里,所有用到该瓦片集的地图共享同一份定义。
放置游戏对象并标注属性
对象图层用来放置角色、道具和触发器。选择 Rectangle / Point / Ellipse / Polygon / Polyline / Tile 对象,自由摆放到地图任意位置——对象不要求对齐瓦片网格,还可以缩放、旋转。随后在属性面板里给对象加自定义属性,比如怪物的 id、触发器的 target,这些数据会随地图一起导出。
导出地图文件
编辑完成后点File -> Export选择目标格式;也支持命令行参数--export-map与--export-tileset批量自动化导出,Linux 无头环境可搭配 Xvfb 运行。
Tiled 进阶功能:自动映射、世界视图与对象模板
| 技巧 | 适用场景 | 操作要点 |
|---|---|---|
| Automapping 自动映射 | 装饰层跟随主层自动变化、批量修正贴边错误 | 用普通地图文件定义规则(input 层匹配模式、output 层输出结果),通过rules.txt引用;在Project -> Project Properties里配置规则文件。注意 1.9 之后是全新规则系统,不要保留旧版regions图层,否则会退回旧行为 |
| 世界视图管理多张地图 | 由多张小地图拼成的大关卡、房间制 RPG | 世界视图可并排编辑、查看多张相关地图,在地图之间配置切换条件,保证场景衔接一致;参考 worlds.rst |
| 对象模板复用 | 同一种门、箱子、陷阱在多个场景反复出现 | 把常用对象存成模板,其他地图里直接拖拽实例化;实例可单独调整属性,参考 using-templates.rst |
Tiled 新手常见踩坑与正确做法
瓦片集不要嵌进地图。新建瓦片集时"Embed in map"默认关闭,这个默认值是对的:瓦片集单独存成.tsx文件后,地形定义、碰撞形状、自定义属性等改动会同步给所有引用它的地图;一旦嵌入,每张地图就各自带一份瓦片数据,改了 A 地图的碰撞,B 地图不会跟着变。
版本要统一,尤其涉及地形信息。地形(terrains)与 Wang tiles 在 Tiled 1.5 合并扩展,1.5 中定义的地形信息无法被更旧版本使用。团队里有人用老版本打开新文件再保存,地形信息可能出问题,先核对版本再协作。
自动映射没反应时,先查规则文件位置和图层类型。规则要么在Project Properties里指向rules.txt,要么与目标地图放在同一目录;另外 1.9 之后新建规则时确认没有regions图层,否则系统会走旧行为,规则表现和预期不一致。
Tiled 官方文档、示例与学习资源
- 官方用户手册:从建图、图层、对象到导出、脚本化的完整指南
- 示例项目:
desert.tmx是最小的入门地图,sticker-knight/展示了图片型瓦片集配合对象图层的完整用法 - Python 脚本支持文档:用脚本扩展编辑器功能,如自定义导出格式
- TMX 地图格式参考:了解最终产出文件的结构,方便写引擎端解析代码
- 源码入口:核心库 src/libtiled/,GUI 与工具 src/tiled/,内置导出插件 src/plugins/
Tiled 的入门成本很低:打开examples/里的 desert 示例地图熟悉一遍工具栏,再给一张自己的瓦片图加碰撞形状并导出,半小时就能跑通完整流程。遇到格式或引擎对接问题,先翻 TMX 格式文档,多数疑问在文档里有直接答案。
【免费下载链接】tiledFlexible level editor项目地址: https://gitcode.com/gh_mirrors/ti/tiled
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考