()
| 8 | use blue_engine::{Engine, ObjectSettings, Vector3, primitive_shapes::square}; |
| 9 | |
| 10 | fn main() -> Result<(), blue_engine::error::Error> { |
| 11 | // initialize the engine |
| 12 | let mut engine = Engine::new()?; |
| 13 | |
| 14 | // make the first layer |
| 15 | square( |
| 16 | "layer1", |
| 17 | ObjectSettings::default(), |
| 18 | &mut engine.renderer, |
| 19 | &mut engine.objects, |
| 20 | )?; |
| 21 | |
| 22 | // make the second layer |
| 23 | square( |
| 24 | "layer2", |
| 25 | ObjectSettings::default(), |
| 26 | &mut engine.renderer, |
| 27 | &mut engine.objects, |
| 28 | )?; |
| 29 | |
| 30 | // Get layer 1 object |
| 31 | engine |
| 32 | .objects |
| 33 | .get_mut("layer1") |
| 34 | .expect("failed to gete object") |
| 35 | .set_color(1f32, 0.5, 0f32, 1f32) // set a color to differentiate it |
| 36 | .set_position(Vector3::new(-0.5, 0f32, 0f32)) // move it to left a bit |
| 37 | .set_render_order(0); // set render order to 0th |
| 38 | |
| 39 | // Get layer 2 object |
| 40 | engine |
| 41 | .objects |
| 42 | .get_mut("layer2") |
| 43 | .expect("failed to gete object") |
| 44 | .set_color(0f32, 0f32, 1f32, 1f32) // set a color to differentiate it |
| 45 | .set_position(Vector3::new(0.5, 0f32, 0f32)) // move it to right a bit |
| 46 | .set_render_order(1); // set render order to 1st |
| 47 | |
| 48 | // get a timer for order change |
| 49 | let start = std::time::Instant::now(); |
| 50 | |
| 51 | // start the update loop |
| 52 | engine.update_loop(move |engine| { |
| 53 | // get the target layer to change order of |
| 54 | let target = engine.objects.get_mut("layer1").unwrap(); |
| 55 | |
| 56 | // on ever 2 seconds change order |
| 57 | if start.elapsed().as_secs().is_multiple_of(2) { |
| 58 | target.set_render_order(2); |
| 59 | } else { |
| 60 | // change back to default |
| 61 | target.set_render_order(0); |
| 62 | } |
| 63 | })?; |
| 64 | |
| 65 | Ok(()) |
| 66 | } |
nothing calls this directly
no test coverage detected