15 个版本 (3 个重大变更)
| 3.1.2 | 2024 年 7 月 20 日 |
|---|---|
| 3.1.1 | 2024 年 7 月 9 日 |
| 2.0.0 | 2024 年 7 月 5 日 |
| 1.0.0 | 2024 年 7 月 5 日 |
| 0.2.3 | 2024 年 5 月 23 日 |
#241 在 游戏开发
每月下载量 489
用于 2 crates
160KB
4.5K SLoC
rantz_spatial2d
Bevy 游戏引擎的一个 2D 变换系统,支持变换传播控制。
核心类型
Position2D
Position2D 结构体表示空间中的 2D 点。它有两个字段:x 和 y,分别代表点的笛卡尔坐标。
Rotation2D
Rotation2D 结构体表示 2D 旋转。它可以与弧度或度数一起使用。
Scale2D
Scale2D 结构体表示 2D 缩放。它有两个字段:x 和 y,分别代表 x 和 y 轴的缩放因子。
SpatialBundle2D
SpatialBundle2D 结构体表示 2D 变换的空间状态。它包含一个 Position2D、Rotation2D 和 Scale2D。它提供了一个方便的方式来存储和操作游戏对象的空间状态。
当您将 SpatialBundle2D 添加到实体时,它还会自动添加一个 SpatialBundle,这使得使用 Bevy 的内置变换系统与空间 2D 系统变得很容易。
绘制顺序
DrawOrder 结构体用于指定游戏中实体的绘制层次。它是一个 f32 的包装器,值越高绘制在上层。
传播类型
以下枚举用于控制实体的空间组件如何传播到其子组件。
PositionPropagation
PositionPropagation 枚举有两个变体
相对: **[默认]** 子实体的位置相对于其父实体的位置。
绝对: 子实体的位置是绝对的,不考虑其父实体的位置。
RotationPropagation
RotationPropagation 枚举有两个变体
相对: **[默认]** 子实体的旋转相对于其父实体的旋转。
绝对:子实体的旋转是绝对的,不考虑其父实体的旋转。默认情况下,PositionPropagation和RotationPropagation都设置为Relative。
缩放传播
ScalePropagation枚举有两个变体
相对: **[默认]** 子实体的旋转相对于其父实体的旋转。
绝对:子实体的旋转是绝对的,不考虑其父实体的旋转。
指南针
除了上述内容,还包括但不限于SpatialBundle2D的Compass、CompassRose和CompassHalfwinds。在2D游戏中,通常需要知道特定实体面对的方向,以便选择要绘制的精灵。这些枚举可以作为具有Rotation2D的任何组件,并且在变换传播过程中,这些值将更新以匹配对象的旋转。
特性标志
serde- 为serde:Serialize和serde:Deserialize添加实现。
用法
将crate添加到您的Cargo.toml
如果使用bevy,请将SpatialPlugin2D添加到您的应用程序中。
依赖项
约40-75MB
约1.5M SLoC