#texture #packing #packer #atlas #sprite #2d-game

rect_packer

一个矩形打包库。经过大量随机数据的测试,确保其总是产生正确的结果。

4个版本

使用旧的Rust 2015

0.2.1 2017年9月22日
0.2.0 2017年2月14日
0.1.1 2016年12月30日
0.1.0 2016年7月17日

#1325 in 游戏开发

Download history 453/week @ 2024-04-01 440/week @ 2024-04-08 569/week @ 2024-04-15 610/week @ 2024-04-22 612/week @ 2024-04-29 538/week @ 2024-05-06 496/week @ 2024-05-13 657/week @ 2024-05-20 700/week @ 2024-05-27 786/week @ 2024-06-03 721/week @ 2024-06-10 599/week @ 2024-06-17 652/week @ 2024-06-24 550/week @ 2024-07-01 779/week @ 2024-07-08 580/week @ 2024-07-15

2,636 每月下载量
用于 16 个Crate (7 直接使用)

MIT 协议

19KB
393

rect-packer 构建状态

将多个矩形打包进一个更大的矩形中。可用于将精灵打包到纹理中,用于2D游戏。使用天际线启发式算法。经过大量随机数据的测试,确保其总是产生正确的结果。

文档

Crates.io 软件包

Skyline packer


MIT 协议


lib.rs:

将小矩形打包进一个更大的矩形中。这对于创建用于高效GPU渲染的纹理图集非常有用。

使用示例

use rect_packer::Packer;

let config = rect_packer::Config {
    width: 1024,
    height: 1024,

    border_padding: 5,
    rectangle_padding: 10,
};

let rectangles = [(50, 70), (350, 210), (255, 410)];

let mut packer = Packer::new(config);
for &(width, height) in &rectangles {
    if let Some(rect) = packer.pack(width, height, false) {
        println!("Rectangle is at position ({}, {}) within the encompassing rectangle",
            rect.x,
            rect.y);
    }
}

无运行时依赖