8 个版本
0.2.6 | 2019 年 7 月 6 日 |
---|---|
0.2.5 | 2019 年 7 月 6 日 |
0.2.4 | 2019 年 6 月 27 日 |
0.1.0 | 2019 年 6 月 26 日 |
#1532 in 游戏开发
36KB
740 行
Tiled 编辑器 JSON 解析器
用法
Cargo.toml
[dependencies]
tiled-json-rs = "0.1.0"
从文件加载
let map = tiled::Map::load_from_file(PathBuf::from("assets/test.json"))
.expect("Failed to load map");
遍历瓦片集
for tileset in &map.tile_sets {
let name = tileset.name.clone();
let mut path = PathBuf::from("assets");
path.push(tileset.image.clone());
// Do stuff
}
遍历层
fn render_layers(
layers: &Vec<Layer>,
) {
for layer in layers {
match &layer.layer_type {
tiled::LayerType::TileLayer(tiles) => {
do_something(tiles);
}
tiled::LayerType::Group { layers } => {
&mut render_layers(layers);
}
tiled::LayerType::ImageLayer(image) => {
do_something_else(image);
}
tiled::LayerType::ObjectGroup(objects) => {
and_another_thing(objects);
}
}
}
}
render_layers(&map.layers);
备注
- 瓦片 GID 从 1 开始,0 保留用于 空 瓦片
- 本地 ID 对于
TileSet
从 0 开始,仅适用于TileSet
- 瓦片集必须在 JSON 中包含(这将是临时的,直到完成路径解析)
- 仅在可能需要澄清的地方提供文档注释。通常情况下,命名应该足够好,以便意图可以自我描述。
许可证
MPL v2
依赖
~1–1.8MB
~38K SLoC