17个版本 (重大更改)
0.13.0 | 2024年7月18日 |
---|---|
0.12.0 | 2024年2月19日 |
0.11.2 | 2023年12月16日 |
0.11.1 | 2023年11月20日 |
0.4.1 | 2022年6月16日 |
66 在 游戏开发
537 每月下载量
在 bevy_cleancut 中使用
8MB
1.5K SLoC
bevy_particle_systems
Bevy的本地和WASM兼容的2D粒子系统插件
注意:此crate仍在开发中,其API可能在版本之间发生变化。
示例
上面的截图是在运行basic
示例的发布版本时捕获的,使用cargo run --example basic --release
,在2019年Intel i9 MacBook Pro上以190-200 FPS运行,渲染约10k个粒子。
INFO bevy diagnostic: frame_time : 5.125810ms (avg 5.211673ms)
INFO bevy diagnostic: fps : 206.027150 (avg 204.176718)
INFO bevy diagnostic: entity_count : 11358.713999 (avg 11341.450000)
使用方法
- 添加
ParticleSystemPlugin
插件。
use bevy::prelude::*;
use bevy_particle_systems::ParticleSystemPlugin;
fn main() {
App::new()
.add_plugins((DefaultPlugins, ParticleSystemPlugin)) // <-- Add the plugin
// ...
.add_systems(Startup, spawn_particle_system)
.run();
}
fn spawn_particle_system() { /* ... */ }
- 在必要时随时生成粒子系统。
use bevy::prelude::*;
use bevy_particle_systems::*;
fn spawn_particle_system(mut commands: Commands, asset_server: Res<AssetServer>) {
commands
// Add the bundle specifying the particle system itself.
.spawn(ParticleSystemBundle {
particle_system: ParticleSystem {
max_particles: 10_000,
texture: ParticleTexture::Sprite(asset_server.load("my_particle.png")),
spawn_rate_per_second: 25.0.into(),
initial_speed: JitteredValue::jittered(3.0, -1.0..1.0),
lifetime: JitteredValue::jittered(8.0, -2.0..2.0),
color: ColorOverTime::Gradient(Gradient::new(vec![
ColorPoint::new(Color::WHITE, 0.0),
ColorPoint::new(Color::srgba(0.0, 0.0, 1.0, 0.0), 1.0),
])),
looping: true,
system_duration_seconds: 10.0,
..ParticleSystem::default()
},
..ParticleSystemBundle::default()
})
// Add the playing component so it starts playing. This can be added later as well.
.insert(Playing);
}
Bevy版本
bevy_particle_systems |
bevy |
---|---|
0.13 | 0.14 |
0.12 | 0.13 |
0.11 | 0.12 |
0.10 | 0.11 |
0.9 | 0.10 |
0.6 - 0.8 | 0.9 |
0.5 | 0.8 |
0.4 | 0.7 |
依赖关系
~30–67MB
~1M SLoC