#[cfg(target_os = "macos")]
use std::f64::consts::PI;
#[cfg(target_os = "macos")]
use core_animation::prelude::*;
#[cfg(target_os = "macos")]
fn main() {
println!("Particle Emitter Example\n");
println!("Particles burst from a single point in all directions.\n");
let size = 640.0;
let window = WindowBuilder::new()
.title("Particle Emitter")
.size(size, size)
.centered()
.background_color(Color::gray(0.05).with_alpha(1.0))
.build();
let emitter = CAEmitterLayerBuilder::new()
.position(size / 2.0, size / 2.0)
.shape(EmitterShape::Point)
.particle(|p| {
p.birth_rate(100.0) .lifetime(10.0) .velocity(100.0) .scale(0.1) .emission_range(PI * 2.0) .color(Color::CYAN) .image(ParticleImage::soft_glow(64))
})
.build();
window.container().add_sublayer(&emitter);
println!("Emitter stats:");
println!(" - birth_rate: 100 particles/second");
println!(" - lifetime: 10 seconds");
println!(" - At steady state: ~1000 particles on screen\n");
window.show_for(15.seconds());
println!("Done!");
}
#[cfg(not(target_os = "macos"))]
fn main() {
eprintln!("This example only runs on macOS");
}