9个不稳定版本 (3个破坏性更新)
0.4.0 | 2021年4月7日 |
---|---|
0.3.1 | 2021年1月12日 |
0.2.2 | 2020年11月22日 |
0.1.1 | 2020年11月4日 |
#1829 in 游戏开发
56 每月下载次数
540KB
4K SLoC
Bevy Tilemap
基于块的Bevy游戏引擎瓦片地图。
Bevy Tilemap允许以块为基础高效地构建地图,以实现Bevy原生的批量渲染瓦片。
实现简单但经过精心设计,旨在附加到其他可扩展插件,以进一步增强其功能。手工制作的瓦片地图,注重性能和低数据使用。
警告
此项目仍处于实验阶段,API可能会在第一次发布之前经常发生变化。它使用一个实验性的游戏引擎,这也可能破坏API。尽可能遵循语义版本控制,并且贡献者将尽可能尝试保持API稳定。
如果您有API建议,现在是时候提出建议了。
功能
- 非常适合游戏马拉松。
- 易于使用且基本上稳定的API,拥有详尽的文档。
- 无限或有限维度瓦片地图。
- 批量渲染多个瓦片。
- 正方形和六边形瓦片。
构建功能
- Serde支持
- 额外类型
设计
这不仅仅是一个瓦片地图。它旨在成为一个框架,并且像Bevy一样具有可扩展性。同时,还进行了工作,以使其尽可能接近Bevy API,同时考虑Rust API的最佳实践。它不是为了复杂而设计的,而是为了简单易用,但提供了足够的功能以满足高级用户的需求。
减少调整时间,增加构建时间
使用方法
将以下内容添加到您的Cargo.toml
文件中
[dependencies]
bevy = "0.5"
bevy_tilemap = "0.4"
简单的瓦片地图构建
在最基本的实现中,以下列出的内容不是必需的,以使瓦片地图开始运行。
use bevy_tilemap::prelude::*;
use bevy::asset::HandleId;
use bevy::prelude::*;
// This must be set in Asset<TextureAtlas>.
let texture_atlas_handle = Handle::weak(HandleId::random::<TextureAtlas>());
let mut tilemap = Tilemap::new(texture_atlas_handle, 32, 32);
// Coordinate point with Z order.
let point = (16, 16, 0);
let tile_index = 0;
tilemap.set_tile(point, tile_index);
tilemap.spawn_chunk_containing_point(point);
当然,使用Tilemap::builder()
可以构建具有更多高级功能的瓦片地图。
- 3D和2D瓦片地图。
- 纹理图集。
- 瓦片地图的尺寸。
- 块的尺寸。
- 瓦片的尺寸。
- 添加Z渲染层
- 自动创建块。
- 根据视图自动生成瓦片。
未来更新将增加更多功能,使其与其他项目的瓦片地图实现相匹配。
未来计划
还有很多事情要做,但API现在已稳定,应该可以维持一段时间。下一个版本将专注于添加自动化方法和系统。
- 自动瓦片:根据瓦片的邻居选择正确的瓦片。
- 瓦片导入:从多种格式的文件导入瓦片。
构建
bevy_tilemap
仅保证从稳定的Rust工具链开始工作。这是与Bevy引擎的其他部分保持一致。
一旦您有了开发环境,就可以使用git获取Bevy Tilemap
$ git clone --recursive https://github.com/joshuajbouw/bevy_tilemap/
然后使用cargo进行构建
$ cargo build --example random_dungeon
cargo还可以用于运行测试
$ cargo test
依赖项
~26–69MB
~528K SLoC