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