2 个版本
0.1.2 | 2023 年 6 月 20 日 |
---|---|
0.1.1 |
|
0.1.0 | 2023 年 6 月 19 日 |
#1296 在 游戏开发 中
20KB
405 行
bevy-flights
用于处理飞行弹丸的 crate,尤其在 bevy 中的弹幕游戏中。
进行中
lib.rs
:
此 crate 的目的是模拟弹幕游戏中,特别是东方项目中可以找到的复杂飞行模型。
如何使用
- 将插件
bevy_flight::prelude::DefaultFlightsPlugin<_>::default()
添加到您的应用程序中。 - 在您的子弹上插入飞行组件,例如
bevy_flight::flights::AffineFlight2d
。
如何创建自定义飞行组件
- 实现 bevy_flight::flights::FlightDescriptor 特征,你需要实现关联方法
fn transform(self, t: f32, transform: &mut Transform)
,其中 t 通常是从 Res - 您还可以实现另一个特征,例如 Translation2dDescriptor,从而实现
fn translation(&self, t: f32) -> Vec2
并在它上面调用.wrap()
以将其转换为组件。 - 将系统
bevy_flight::plugin::flight_system::<T>
添加到您的应用中,或者如果您使用了Translation2dDescriptor
bevy_flight::plugin::position2D_system::<T>
- 将自定义的飞行组件添加到您的子弹中,如果需要的话。
如何创建飞行总和
- 您可以创建类似以下内容的对象:
bevy_flights::composites::TranslationSum2d<CircleFlight, LinearFlight>
这实现了Translation2dDescriptor
。 - 不要忘记为 TranslationSum2d<A, B> 添加系统 position2D_system,因为即使 A 和 B 都已包含,它也没有包含在 DefaultFlightsPlugin 中。(无论如何,那是不可能的,需要插入无限数量的系统。)
依赖项
约16-25MB
约392K SLoC