#tiled #map #tile #maps #loading #layer #tileset

已删除 tmx

TMX 是一个用于在 Rust 中加载 Tiled 地图的库

7 个版本

0.3.1 2020年5月28日
0.3.0 2020年5月28日
0.2.2 2020年5月26日
0.1.2 2020年4月30日

#15#tileset

每月 22 次下载

MIT 许可证

38KB
750

TMX

Build Status Crates.io Docs License

TMX 是一个用于在 Rust 中加载 Tiled (XML 和 JSON) 地图的库。

使用方法

cargo add tmx

示例

加载地图

use tmx::Map;

fn main() -> Result<(), Box<dyn Error>> {
    let map = r##"
    <?xml version="1.0" encoding="UTF-8"?>
    <map version="1.2" tiledversion="1.3.3" orientation="isometric" renderorder="right-down" width="4" height="4" tilewidth="16" tileheight="16" infinite="0" nextlayerid="2" nextobjectid="1">
     <tileset firstgid="1" name="test" tilewidth="16" tileheight="16" tilecount="256" columns="16">
      <image source="tiles16.png" width="256" height="256"/>
     </tileset>
     <layer id="1" name="Tile Layer 1" width="4" height="4">
      <data encoding="csv">
    1,2684354561,1,2147483649,
    1610612737,3221225473,1073741825,3221225473,
    2147483649,3758096385,1073741825,536870913,
    536870913,1073741825,3758096385,2147483649
    </data>
     </layer>
    </map>
    "##;

    let map = Map::from_xml(map)?;
    println!("{:?}", map);

    Ok(())
}

加载瓦片集

use tmx::Tileset;

fn main() -> Result<(), Box<dyn Error>> {
    let tileset = r##"
    <?xml version="1.0" encoding="UTF-8" ?>
<tileset version="1.2" tiledversion="1.3.3" name="tiles16" tilewidth="16" tileheight="16" tilecount="256" columns="16">
    <image source="tiles16.png" width="256" height="256" />
    <tile id="0" type="Solid" />
    <tile id="1" type="Solid" />
    <tile id="2" type="Solid" />
    <tile id="3" type="OneWay" />
</tileset>
    "##;

    let tileset = Tileset::from_xml(tileset)?;
    println!("{:?}", tileset);

    Ok(())
}

有关更多信息,请参阅 文档

TMX 地图格式支持

元素 支持
<map> ✅ 完全支持
<editorsettings> 🛑 无支持
- <chunksize> 🛑 无支持
- <export> 🛑 无支持
<tileset> ⚠️ 部分支持
- <tileoffset> 🛑 无支持
- <grid> 🛑 无支持
- <image> ✅ 完全支持
- <terraintypes> 🛑 无支持
- - <terrain> 🛑 无支持
- <tile> ✅ 完全支持
- - <animation> ✅ 完全支持
- <wangsets> 🛑 无支持
- - <wangset> 🛑 无支持
<layer> ✅ 完全支持
- <data> ✅ 完全支持
- <chunk> ✅ 完全支持
- <tile> ✅ 完全支持
<objectgroup> 🛑 无支持
- <object> 🛑 无支持
- <ellipse> 🛑 无支持
- <point> 🛑 无支持
- <polygon> 🛑 无支持
- <polyline> 🛑 无支持
- <text> 🛑 无支持
<imagelayer> 🛑 无支持
<group> 🛑 无支持
<属性> 🛑 无支持
- <property> 🛑 无支持

特性

以下特性默认可用。

特性 描述
xml 允许加载XML地图。
base64-data 允许加载Tile Layer Format为Base64(未压缩)的地图。
gzip-data 允许加载Tile Layer Format为Base64(gzip压缩)的地图。
zlib-data 允许加载Tile Layer Format为Base64(zlib压缩)的地图。
zstd-data 允许加载Tile Layer Format为Base64(Zstandard压缩)的地图。

许可

MIT

依赖

~1.6–3.5MB
~66K SLoC