#tilemap #tiled #bevy #array #ldtk #2d #texture

bevy_entitiles

Bevy的2D瓦片地图库。内置了许多实用的算法/工具。

19个版本 (9个破坏性版本)

0.10.0 2024年7月5日
0.9.0 2024年5月3日
0.7.0 2024年3月4日
0.2.5 2023年12月28日
0.2.2 2023年11月30日

#119游戏开发

Download history 4/week @ 2024-04-26 125/week @ 2024-05-03 7/week @ 2024-05-10 16/week @ 2024-05-17 8/week @ 2024-05-24 9/week @ 2024-05-31 13/week @ 2024-06-07 89/week @ 2024-06-14 14/week @ 2024-06-21 7/week @ 2024-06-28 178/week @ 2024-07-05 4/week @ 2024-07-12 324/week @ 2024-07-26 30/week @ 2024-08-02

每月354次下载

MIT 许可证

550KB
14K SLoC

Bevy EntiTiles 🗺️

Bevy的2D瓦片地图库。内置了许多实用的算法/工具。

不推荐使用dev分支中的代码!那里充满了不完整的代码甚至错误!但如果您迫不及待想要尝试新功能,那么master分支将是不错的选择。

目前,文档并不十分全面。如果您遇到任何问题,请随时提交问题或在bevy Discord服务器上ping我或直接私信 @443eb9

这个crate主要受到 bevy_ecs_tilemap(渲染) 和 bevy_ecs_ldtk(LDtk实体生成) 的启发。

为什么选择EntiTiles

  • 最新版本 一旦Bevy的新版本发布,bevy_entitiles将在12小时内跟进大部分更新。
  • 性能强大 能够在10600KF + 3070上以200+fps渲染1000x1000的瓦片地图。
  • 内置丰富功能 内置了有用的算法(路径查找、WFC...)和工具(LDtk和Tiled导入器...)。

警告!

您绝对不应该安装以下版本!它们包含关键错误,不推荐使用!

0.6.0

限制

  • 每个瓦片地图支持最多4个渲染层*。

* 渲染层是指将要被渲染的层。您可以插入任意多的层,但只有最上面的4层会被渲染。

未来目标

优先级越高,以下列表中的位置越靠前。

  • 更多瓦片地图形状(三角形、Voronoi)
  • 路径查找(并行A*路径查找)
  • LDtk 支持(自动将EntityRef映射到真实实体)
  • Tiled 支持(算法相关,自动将object类型映射到真实实体)
  • 瓦片地图序列化(自定义二进制格式)
  • 王瓦片铺贴
  • 瓦片地图遮罩
  • 视锥剔除
  • 物理
  • 无限瓦片地图
  • 块卸载
  • 自定义材质

正在寻找已删除的渲染功能?它们已被移至 bevy_incandescent(一个当前处于开发中的2D光照crate)!

功能标志

标志 功能
算法 算法的实现
图集 在整个纹理上使用计算出的UV坐标,而不是使用纹理数组。
调试 显示一些调试信息,包括块和瓦片图的aabbs,路径查找结果等。
ldtk LDtk 支持。
多线程 支持异步运行算法。如果目标是wasm,请禁用此功能。
物理 使用 bevy_xpbd 支持物理。
序列化 从文件中保存和加载瓦片图。还包含用于升级文件的工具。
tiled Tiled 支持。

坐标系

瓦片图中x和y轴是索引轴。单个瓦片上的x和y表示实际网格大小。您可以使用 tile_render_size 控制它。

这里的 legs 在数学上是不正确的,请将其视为一个新概念。

展示

请参阅 README 中的 examples

资产

版本

LDtk版本是json api已更改的版本。因此,您也可以在0.2.7中使用1.5.2。有关更多信息,请参阅

这并不意味着LDtk和Tiled对应版本的全部功能都得到支持,但此crate使用从它们生成的源瓦片图文件!

Bevy版本 EntiTiles版本 LDtk版本 Tiled版本
0.13.x 0.6.0-0.9.0 1.5.3 1.10.2
0.12.x 0.4.0-0.5.0 1.5.3 1.10.2
0.12.x 0.3.0 1.5.3 不支持
0.12.x 0.2.7 1.5.1 不支持
0.12.x 0.2.3-0.2.6 1.4.1 不支持
0.12.x 0.2.0-0.2.2 不支持 不支持
0.11.x 0.1.x 不支持 不支持

0.3.0之前的版本不遵循语义版本控制

依赖项

~38–76MB
~1.5M SLoC