7个不稳定版本 (3个重大更改)
0.4.1 | 2021年4月26日 |
---|---|
0.4.0 | 2021年4月25日 |
0.3.0 | 2021年3月10日 |
0.2.0 | 2021年1月26日 |
0.1.0 | 2021年1月3日 |
#1038 在 游戏开发
在 3 个crate中使用 2 个直接使用
50KB
293 行
ldtk
读取LDtk瓦片地图格式的crate。
此crate实现了使用serde
序列化和反序列化LDtk地图格式的Rust结构。
示例
Cargo.toml
:
# Note: We must specify the version of LDtk we want to support in a feature flag
ldtk = { version = "0.4.0", features = ["ldtk-v0-9-3"] }
main.rs
:
use ldtk::Project;
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Load the map
let map: Project =
serde_json::from_slice(include_bytes!("../examples/full-features.ldtk"))?;
// Debug print the map
dbg!(map);
Ok(())
}
额外文档
有关在游戏中使用LDtk项目结构的更多信息,请参阅LDtk文档。
命名约定
此crate在几乎所有情况下都使用与原始JSON格式相同的结构字段名称。此规则的例外是名称为type
的字段。在这种情况下,字段的名称将以其结构名称为前缀,转换为蛇形,例如field_def_type
。
__field_name
约定
LDtk地图格式的约定是使用两个下划线前缀某些便利字段,例如__tile_src_rect
。这些字段是冗余的,因为这些信息也在项目结构中的其他地方存在,但在某些情况下,它们可以使得遍历项目结构变得更加方便。
双下划线前缀不表示该字段是私有字段或实现细节。
构建配置 & 功能
整个crate自动从JSON Schema生成,该Schema来自LDtk仓库,并且可以自动更新为LDtk版本。
默认情况下,crate需要您传递一个功能,指明内置crate的JSON Schema版本,这样就不需要网络访问来构建,但您也可以提供download-schema
cargo功能,以便crate从LDtk仓库下载JSON Schema(请参阅以下“下载Schema”)。
此crate目前内置以下LDtk版本的Schema
v0.9.3
v0.8.1
(已修复,见下文说明)v0.7.0
特定版本的特性标志格式如下:ldtk-v0-9-3
。注意,版本中的点已被替换为破折号,以符合 cargo 的特性命名约定。
注意:在版本 0.8.1 中,有一个在 JSON 架构中被标记为非空的字段,但在 LDtk 样本地图中的一个字段是空的。我们修复了 JSON 架构,使该字段可空,以便地图可以正确加载。
随着 LDtk 新版本的发布,我们可能会添加新的内置架构。这些架构将各自位于新的特性标志下,这样架构的更新就不需要是破坏性更改。
下载架构
当提供 download-schema
特性时,您可以在构建时通过设置环境变量 LDTK_VERSION
来指定为哪个版本的 LDtk 构建这个包。默认情况下,LDTK_VERSION
将为 master
,这将从 LDtk git 仓库的 master 分支拉取最新架构。
许可
LDtk-rs 使用 Katharos 许可证,该许可证对您可以使用它进行的内容施加某些限制。在使用 LDtk-rs 为您的项目之前,请阅读并理解这些条款。
类似项目与 Bevy 集成
依赖项
~0.6–2.4MB
~41K SLoC