1个稳定版本
1.0.0 | 2024年7月21日 |
---|
960 在 游戏开发
149 每月下载量
用于 2 crate
160KB
4.5K SLoC
reactor_spatial
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
DrawOrder
结构体用于指定游戏中实体的绘制分层。它是一个f32的包装器,值越高则绘制在值较低的上面。
传播类型
以下枚举用于控制实体的空间组件如何传播到其子组件。
PositionPropagation
PositionPropagation
枚举有两个变体
相对: **[默认]**子实体的位置相对于父实体的位置。
绝对:子实体的位置是绝对的,不考虑父实体的位置。
RotationPropagation
RotationPropagation
枚举有两个变体
相对: **[默认]**子实体的旋转相对于父实体的旋转。
绝对:子实体的旋转是绝对的,不考虑父实体的旋转。默认情况下,PositionPropagation
和RotationPropagation
都设置为Relative
。
ScalePropagation
ScalePropagation
枚举有两个变体
相对: **[默认]**子实体的旋转相对于父实体的旋转。
绝对:子实体的旋转是绝对的,不考虑其父实体的旋转。
指南针
除了上述内容外,不包括在 SpatialBundle2D
中的还有 Compass
、CompassRose
和 CompassHalfwinds
。在 2D 游戏中,为了选择绘制哪个精灵,通常需要知道给定实体面向的指南针方向。这些枚举可以作为组件包含在任何具有 Rotation2D
的实体上,并且作为变换传播的一部分,这些值将更新以匹配对象的旋转。
功能标志
serde
- 为serde:Serialize
和serde:Deserialize
添加实现。
用法
将包添加到您的 Cargo.toml
中。将 SpatialPlugin
添加到您的应用程序中。
依赖项
~38–76MB
~1.5M SLoC