#碰撞 #2d #gamedev #几何 #gjk

no-std 受影响

任意凸形状的2D碰撞测试

14个稳定版本

2.0.2 2024年6月12日
2.0.1 2023年11月1日
2.0.0 2023年8月3日
1.5.4 2023年1月9日
1.3.0 2022年2月20日

78游戏开发 中排名

Download history 82/week @ 2024-06-06 87/week @ 2024-06-13 5/week @ 2024-06-20

784 每月下载量

Unlicense

62KB
1.5K SLoC

受影响

License Crates.io rustc Docs

Rust游戏开发的2D碰撞测试

这提供了一种低级的“窄相”碰撞检测逻辑。

如果您想与广相配合,可以查看 bvh-arenabroccoli

使用示例

use impacted::{CollisionShape, Transform};
use glam::Vec2; // <-- use any math library you like

// Create a circle
let circle = CollisionShape::new_circle(1.0);

// Create a rectangle
let mut rect = CollisionShape::new_rectangle(4.0, 4.0)
    .with_transform(Transform::from_translation(Vec2::new(2.0, 0.0)));

// Test for collision
assert!(circle.is_collided_with(&rect));

您还可以在 示例 目录中查找更完整/具体的用法示例。

安装

cargo add impacted

Cargo功能

  • std (默认启用) 允许使用Rust标准库(对于 no_std 应用程序需要禁用)
  • bvh-arenabvh-arena 箱体体积的集成

不稳定功能标志

以下功能可能会在补丁版本中发生破坏性更改或被删除!

  • unstable-v3 v3 模块,API下一个主要版本的探索
  • unstable-v3-aabb v3模块的轴对齐包围盒形状

MSRV

当前最低支持的Rust版本是: 1.68

将最低支持的Rust版本提升到较新稳定版本不被视为破坏性更改。

Unlicense

这是一款免费且不受限制的软件,已发布到公共领域。

任何人都可以免费复制、修改、发布、使用、编译、销售或分发此软件,无论是以源代码形式还是编译的二进制形式,出于任何目的,无论是商业目的还是非商业目的,以及通过任何方式。

在承认版权法的司法管辖区,此软件的作者或作者将此软件的任何和所有版权利益捐赠给公共领域。我们做出此捐赠是为了公众的大局利益,并损害我们的继承人和继任者的利益。我们意图此捐赠是永久放弃根据版权法对此软件下所有现有和未来权利的明确行为。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和非侵权性保证。在任何情况下,作者都不对任何索赔、损害或其他责任承担责任,无论这些责任是因合同、侵权或其他方式引起的,无论是在软件或其使用或其他交易过程中发生的。

如需更多信息,请参阅 http://unlicense.org/

依赖项

~4.5MB
~132K SLoC