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数据结构 中排名

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

79 每月下载量
4 个crate中使用 (2 直接使用)

MIT/Apache

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