8个版本
0.2.3 | 2023年9月5日 |
---|---|
0.2.2 | 2023年9月4日 |
0.2.1 | 2023年8月19日 |
0.1.5 | 2023年8月12日 |
0.1.3 | 2023年3月18日 |
729 在 数据结构 中排名
79 每月下载量
在 4 个crate中使用 (2 直接使用)
13KB
260 代码行
grids
Crate
此crate提供了一个简单且灵活的2D网格数据结构,主要用于基于网格的游戏。
如果你需要一个矩阵,这个crate并不适合。
功能
- 灵活的网格创建。
- 基于矩形边界克隆网格的子部分。
- 在指定偏移量下将一个网格粘贴到另一个网格上。
- 许多方便的迭代器,带有/不带坐标,各种类型。
- 限制访问方法以确保坐标在网格边界内。
- 通过
serde
功能支持序列化和反序列化。 - 使用
glam
,并允许使用IVec2//UVec2
进行索引,以提供额外便利。
示例用法
以下是一个展示crate用法的简单示例
let mut grid = Grid::new(3, 2, 0); // A 3x2 grid filled with zeros.
grid[(0, 1)] = 5;
// Accessing using glam::IVec2.
assert_eq!(grid[glam::IVec2::new(1, 0)], 0);
// Accessing using glam::UVec2.
assert_eq!(grid[glam::UVec2::new(0, 1)], 5);
// Converting grid to a Vec.
assert_eq!(
grid.into_iter_values().collect::<Vec<_>>(),
vec![0, 0, 0, 5, 0, 0]
);
依赖项
~3MB
~93K SLoC