5个版本
0.2.5 | 2021年5月1日 |
---|---|
0.2.4 | 2021年4月27日 |
0.2.3 | 2021年4月7日 |
0.2.2 | 2021年4月6日 |
0.1.0 | 2020年11月22日 |
在游戏开发类别中排名第1020
每月下载量约40次
57KB
1K SLoC
bevy_tiled
欢迎使用bevy_tiled!
这是一个用于渲染瓦片地图的插件。具体来说,是来自"Tiled"编辑器的地图,可以在以下网址找到
您可以自由地将此代码作为您自定义瓦片映射解决方案的参考。
Bevy版本
本仓库的main
分支针对Bevy 0.5。当使用bevy_tiled时,请确保您的Bevy版本与该库引用的版本相匹配。也有0.4和0.3版本的版本。
如果您正在使用framp的Bevy 0.4分支,它目前已被合并并由v0.1.0-bevy-0.4版本发布。为了获得一些额外的错误修复,您可以指向v0.1.1-bevy-0.4标签。Bevy 0.4中的对象支持是可用的,并且是一个开放的PR,针对bevy-0.4
分支,并作为v0.2.1-rc1-bevy-0.4标签发布。
对于依赖于旧版bevy_tiled的用户,您需要将Cargo.toml指向bevy-0.3
分支或v0.1.0-bevy-0.3标签。那里有一些针对地图定位的小修复,其他方面没有变化。
基本设置
遵循Rust 入门指南,并确保您的机器上已安装rustc
编译器和cargo
构建系统。
克隆此仓库并尝试运行一些示例
# Runs the orthographic tile map example
cargo run --example ortho_main
# Runs the isometric tile map example
cargo run --example iso_main
在这些示例中,您应该能够使用wasd键在地图上平移。您可以在自己的Bevy项目中遵循类似的模式。有关更多信息,请参阅[Bevy设置]指南。
特性
顶级实体支持
目前,TiledMapBundle只是一个配置对象。如果您想访问一个可以变换的顶级实体,请将其传递到配置中
parent_option: Some(entity)
然后,块和对象都将作为此实体的子项插入,该实体将带有MapRoot标签。此API可能发生变化,但我们有一个示例说明它当前的工作方式。
对象组支持
现在支持对象组。如果它们不可见,则会被跳过。不可见的单个对象将以is_visible设置为false的方式生成。您可以将以下内容传递到配置对象中
debug_config: DebugConfig { enabled: true, material: None }
以显示没有瓦片精灵的对象的颜色网格。material: None
将使用默认材质。目前只支持矩形。一些其他对象将显示为小方块,直到我们改进支持。
要查看对象和调试功能,请运行ortho_debug
示例,这将启用对象的调试视图。使用空格键切换对象。
# Runs the debug/objects example
cargo run --example ortho_debug
事件
在生成地图时,您可以监听两个事件。
- ObjectReadyEvent在对象生成时触发。
- MapReadyEvent在所有对象和图层都生成后触发。
这两个事件都有:pub map_entity_option: Option, pub map_handle: Handle,
ObjectReadyEvent还包括entity: Entity
,以显示对象是如何生成的。
热重载
提供有限的热重载支持。根据资产句柄删除旧实体(目前如此)。
asset_server.watch_for_changes().expect("watch for changes failed");
然后,当您保存地图时,它应该在应用程序中更新。
WASM和bevy_webgl2
在项目的Cargo.toml
中使用default-features=false, features=["web"]
。使用Zstd压缩的Tiled地图不受支持。
所需的最重要特性
- 对等距地图的更好支持
- 支持在瓦片中嵌入对象
- 支持在Tmx文件中嵌入图像
- 支持动画
依赖项
~35–81MB
~753K SLoC