3个不稳定版本

0.4.0 2021年4月7日
0.1.1 2021年1月12日
0.1.0 2021年1月11日

#36 in #tilemap

Download history 23/week @ 2024-03-11 21/week @ 2024-03-18 22/week @ 2024-03-25 84/week @ 2024-04-01 13/week @ 2024-04-08 13/week @ 2024-04-15 24/week @ 2024-04-22 13/week @ 2024-04-29 14/week @ 2024-05-06 16/week @ 2024-05-13 16/week @ 2024-05-20 10/week @ 2024-05-27 17/week @ 2024-06-03 10/week @ 2024-06-10 13/week @ 2024-06-17 15/week @ 2024-06-24

57 每月下载量
用于 bevy_tilemap

MIT 许可证

37KB
1K SLoC

Bevy Tilemap

Bevy Tilemap logo

基于块的面片地图,适用于Bevy游戏引擎。

Bevy Tilemap允许使用基于块的加载,有效地构建地图中的原生批量渲染面片。

实现简单而精致,旨在附加到其他可扩展插件,以进一步增强其功能。手工制作的地图,注重性能和低数据使用。

警告

此项目仍处于实验阶段,API可能在第一个版本发布之前经常中断。它使用实验性游戏引擎,这也可能破坏API。尽可能遵循语义版本控制,贡献者将尽可能保持API的稳定性。

如果您有API建议,现在是时候了。

特性

  • 非常适合游戏制作马拉松。
  • 易于使用且大部分稳定的API,具有详尽的文档。
  • 无限或有限维度的地图。
  • 大量面片的批处理渲染。
  • 正方形和六边形面片。

构建功能

  • Serde支持
  • 额外类型

设计

这不仅仅是一个Tilemap。它旨在成为一个框架,并且像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::*;

// Build a default Tilemap with 32x32 pixel tiles.
let mut tilemap = Tilemap::default();

// We need a Asset<TextureAtlas>. For this example we get a random one as a placeholder.
let texture_atlas_handle = Handle::weak(HandleId::random::<TextureAtlas>());

// Set the texture atlas for the Tilemap
tilemap.set_texture_atlas(texture_atlas_handle);

// Create tile data
let tile = Tile {
    // 2D location x,y (units are in tiles)
    point: (16,16),
    
    // Which tile from the TextureAtlas
    sprite_index: 0,
    
    // Which z-layer in the Tilemap (0-up)
    sprite_order: 0,
    
    // Give the tile an optional green tint
    tint: bevy::render::color::Color::GREEN,
    };

// Insert a single tile
tilemap.insert_tile( tile);

当然,使用 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

lib.rs:

Bevy Tilemap 类型

所有Bevy或Glam不支持但有用的类型都包含在这里。

依赖关系

~24–61MB
~485K SLoC