#bevy #flight #gamedev #bullet #transform #component #time

bevy-flights

bevy 游戏引擎中基于位置的飞行的小 crate。适用于弹幕游戏。

2 个版本

0.1.2 2023 年 6 月 20 日
0.1.1 2023 年 6 月 20 日
0.1.0 2023 年 6 月 19 日

#1296游戏开发

MIT 许可证

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