Add comments to examples and fix example_showcase script timing
This commit is contained in:
parent
67b9d182ed
commit
bd97da3a51
@ -13,6 +13,7 @@ fn main() {
|
|||||||
.run();
|
.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// sends MyEvent every second
|
||||||
fn event_trigger_system() -> Box<dyn Schedulable> {
|
fn event_trigger_system() -> Box<dyn Schedulable> {
|
||||||
let mut elapsed = 0.0;
|
let mut elapsed = 0.0;
|
||||||
SystemBuilder::new("event_trigger")
|
SystemBuilder::new("event_trigger")
|
||||||
@ -30,6 +31,7 @@ fn event_trigger_system() -> Box<dyn Schedulable> {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// prints events as they come in
|
||||||
fn event_listener_system(resources: &mut Resources) -> Box<dyn Schedulable> {
|
fn event_listener_system(resources: &mut Resources) -> Box<dyn Schedulable> {
|
||||||
let mut my_event_reader = resources.get_event_reader::<MyEvent>();
|
let mut my_event_reader = resources.get_event_reader::<MyEvent>();
|
||||||
SystemBuilder::new("event_listener")
|
SystemBuilder::new("event_listener")
|
||||||
|
@ -12,7 +12,7 @@ use std::time::Duration;
|
|||||||
// bevy = { version = "0.1.0", default-features = false, features = ["headless"] }
|
// bevy = { version = "0.1.0", default-features = false, features = ["headless"] }
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
println!("This app runs once:");
|
// this app runs once
|
||||||
App::build()
|
App::build()
|
||||||
.add_plugin(ScheduleRunnerPlugin {
|
.add_plugin(ScheduleRunnerPlugin {
|
||||||
run_mode: RunMode::Once,
|
run_mode: RunMode::Once,
|
||||||
@ -20,7 +20,7 @@ fn main() {
|
|||||||
.add_system(hello_world_system())
|
.add_system(hello_world_system())
|
||||||
.run();
|
.run();
|
||||||
|
|
||||||
println!("This app loops forever at 60 fps:");
|
// this app loops forever at 60 fps
|
||||||
App::build()
|
App::build()
|
||||||
.add_plugin(ScheduleRunnerPlugin {
|
.add_plugin(ScheduleRunnerPlugin {
|
||||||
run_mode: RunMode::Loop {
|
run_mode: RunMode::Loop {
|
||||||
|
@ -11,6 +11,7 @@ fn main() {
|
|||||||
.run();
|
.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// moves our cube left when the "left" key is pressed. moves it right when the "right" key is pressed
|
||||||
pub fn move_on_input_system(resources: &mut Resources) -> Box<dyn Schedulable> {
|
pub fn move_on_input_system(resources: &mut Resources) -> Box<dyn Schedulable> {
|
||||||
let mut keyboard_input_event_reader = resources.get_event_reader::<KeyboardInput>();
|
let mut keyboard_input_event_reader = resources.get_event_reader::<KeyboardInput>();
|
||||||
let mut moving_left = false;
|
let mut moving_left = false;
|
||||||
@ -54,6 +55,7 @@ pub fn move_on_input_system(resources: &mut Resources) -> Box<dyn Schedulable> {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// creates a simple scene
|
||||||
fn setup(world: &mut World, resources: &mut Resources) {
|
fn setup(world: &mut World, resources: &mut Resources) {
|
||||||
let mut mesh_storage = resources.get_mut::<AssetStorage<Mesh>>().unwrap();
|
let mut mesh_storage = resources.get_mut::<AssetStorage<Mesh>>().unwrap();
|
||||||
let mut material_storage = resources
|
let mut material_storage = resources
|
||||||
|
@ -10,6 +10,7 @@ fn main() {
|
|||||||
.run();
|
.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// prints out mouse events as they come in
|
||||||
pub fn mouse_input_system(resources: &mut Resources) -> Box<dyn Schedulable> {
|
pub fn mouse_input_system(resources: &mut Resources) -> Box<dyn Schedulable> {
|
||||||
let mut mouse_button_input_event_reader = resources.get_event_reader::<MouseButtonInput>();
|
let mut mouse_button_input_event_reader = resources.get_event_reader::<MouseButtonInput>();
|
||||||
let mut mouse_motion_event_reader = resources.get_event_reader::<MouseMotion>();
|
let mut mouse_motion_event_reader = resources.get_event_reader::<MouseMotion>();
|
||||||
|
@ -5,6 +5,7 @@ fn main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn setup(_world: &mut World, resources: &mut Resources) {
|
fn setup(_world: &mut World, resources: &mut Resources) {
|
||||||
|
// sends out a "CreateWindow" event, which will be received by the windowing backend
|
||||||
let mut create_window_events = resources.get_mut::<Events<CreateWindow>>().unwrap();
|
let mut create_window_events = resources.get_mut::<Events<CreateWindow>>().unwrap();
|
||||||
create_window_events.send(CreateWindow {
|
create_window_events.send(CreateWindow {
|
||||||
descriptor: WindowDescriptor {
|
descriptor: WindowDescriptor {
|
||||||
|
@ -10,7 +10,7 @@ fn main() {
|
|||||||
.run();
|
.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
// rotates the parent, which will result in the child also rotating
|
/// rotates the parent, which will result in the child also rotating
|
||||||
fn build_rotator_system() -> Box<dyn Schedulable> {
|
fn build_rotator_system() -> Box<dyn Schedulable> {
|
||||||
SystemBuilder::new("rotator")
|
SystemBuilder::new("rotator")
|
||||||
.read_resource::<Time>()
|
.read_resource::<Time>()
|
||||||
@ -22,6 +22,7 @@ fn build_rotator_system() -> Box<dyn Schedulable> {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// set up a simple scene with a "parent" cube and a "child" cube
|
||||||
fn setup(world: &mut World, resources: &mut Resources) {
|
fn setup(world: &mut World, resources: &mut Resources) {
|
||||||
let mut mesh_storage = resources.get_mut::<AssetStorage<Mesh>>().unwrap();
|
let mut mesh_storage = resources.get_mut::<AssetStorage<Mesh>>().unwrap();
|
||||||
let mut material_storage = resources
|
let mut material_storage = resources
|
||||||
@ -45,7 +46,7 @@ fn setup(world: &mut World, resources: &mut Resources) {
|
|||||||
})
|
})
|
||||||
.add(Rotator)
|
.add(Rotator)
|
||||||
.add_children(|builder| {
|
.add_children(|builder| {
|
||||||
// cube
|
// child cube
|
||||||
builder.add_entity(MeshEntity {
|
builder.add_entity(MeshEntity {
|
||||||
mesh: cube_handle,
|
mesh: cube_handle,
|
||||||
material: cube_material_handle,
|
material: cube_material_handle,
|
||||||
|
@ -4,23 +4,27 @@ fn main() {
|
|||||||
App::build().add_default_plugins().setup(setup).run();
|
App::build().add_default_plugins().setup(setup).run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// set up a simple scene
|
||||||
fn setup(world: &mut World, resources: &mut Resources) {
|
fn setup(world: &mut World, resources: &mut Resources) {
|
||||||
|
// create a cube and a plane mesh
|
||||||
let mut mesh_storage = resources.get_mut::<AssetStorage<Mesh>>().unwrap();
|
let mut mesh_storage = resources.get_mut::<AssetStorage<Mesh>>().unwrap();
|
||||||
|
let cube_handle = mesh_storage.add(Mesh::load(MeshType::Cube));
|
||||||
|
let plane_handle = mesh_storage.add(Mesh::load(MeshType::Plane { size: 10.0 }));
|
||||||
|
|
||||||
|
// create materials for our cube and plane
|
||||||
let mut material_storage = resources
|
let mut material_storage = resources
|
||||||
.get_mut::<AssetStorage<StandardMaterial>>()
|
.get_mut::<AssetStorage<StandardMaterial>>()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let cube_handle = mesh_storage.add(Mesh::load(MeshType::Cube));
|
|
||||||
let plane_handle = mesh_storage.add(Mesh::load(MeshType::Plane { size: 10.0 }));
|
|
||||||
let cube_material_handle = material_storage.add(StandardMaterial {
|
let cube_material_handle = material_storage.add(StandardMaterial {
|
||||||
albedo: Color::rgb(0.5, 0.4, 0.3),
|
albedo: Color::rgb(0.5, 0.4, 0.3),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
});
|
});
|
||||||
|
|
||||||
let plane_material_handle = material_storage.add(StandardMaterial {
|
let plane_material_handle = material_storage.add(StandardMaterial {
|
||||||
albedo: Color::rgb(0.1, 0.2, 0.1),
|
albedo: Color::rgb(0.1, 0.2, 0.1),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// add entities to the world
|
||||||
world
|
world
|
||||||
.build()
|
.build()
|
||||||
// plane
|
// plane
|
||||||
|
@ -7,8 +7,11 @@ fn main() {
|
|||||||
.run();
|
.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set up a simple scene using a "startup system".
|
||||||
|
/// Startup systems are run exactly once when the app starts up.
|
||||||
|
/// They run right before "normal" systems run.
|
||||||
pub fn startup_system() -> Box<dyn Schedulable> {
|
pub fn startup_system() -> Box<dyn Schedulable> {
|
||||||
SystemBuilder::new("setup")
|
SystemBuilder::new("startup")
|
||||||
.write_resource::<AssetStorage<Mesh>>()
|
.write_resource::<AssetStorage<Mesh>>()
|
||||||
.write_resource::<AssetStorage<StandardMaterial>>()
|
.write_resource::<AssetStorage<StandardMaterial>>()
|
||||||
.build(move |command_buffer, _, (meshes, materials), _| {
|
.build(move |command_buffer, _, (meshes, materials), _| {
|
||||||
|
@ -4,7 +4,9 @@ fn main() {
|
|||||||
App::build().add_default_plugins().setup(setup).run();
|
App::build().add_default_plugins().setup(setup).run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// sets up a scene with textured entities
|
||||||
fn setup(world: &mut World, resources: &mut Resources) {
|
fn setup(world: &mut World, resources: &mut Resources) {
|
||||||
|
// load a texture
|
||||||
let mut texture_storage = resources.get_mut::<AssetStorage<Texture>>().unwrap();
|
let mut texture_storage = resources.get_mut::<AssetStorage<Texture>>().unwrap();
|
||||||
let texture = Texture::load(TextureType::Png(
|
let texture = Texture::load(TextureType::Png(
|
||||||
concat!(env!("CARGO_MANIFEST_DIR"), "/assets/bevy_logo_dark_big.png").to_string(),
|
concat!(env!("CARGO_MANIFEST_DIR"), "/assets/bevy_logo_dark_big.png").to_string(),
|
||||||
@ -12,30 +14,35 @@ fn setup(world: &mut World, resources: &mut Resources) {
|
|||||||
let aspect = texture.height as f32 / texture.width as f32;
|
let aspect = texture.height as f32 / texture.width as f32;
|
||||||
let texture_handle = texture_storage.add(texture);
|
let texture_handle = texture_storage.add(texture);
|
||||||
|
|
||||||
|
// create a new quad mesh. this is what we will apply the texture to
|
||||||
let mut mesh_storage = resources.get_mut::<AssetStorage<Mesh>>().unwrap();
|
let mut mesh_storage = resources.get_mut::<AssetStorage<Mesh>>().unwrap();
|
||||||
let quad_width = 8.0;
|
let quad_width = 8.0;
|
||||||
let quad_handle = mesh_storage.add(Mesh::load(MeshType::Quad {
|
let quad_handle = mesh_storage.add(Mesh::load(MeshType::Quad {
|
||||||
size: Vec2::new(quad_width, quad_width * aspect),
|
size: Vec2::new(quad_width, quad_width * aspect),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
// create materials that use our new texture
|
||||||
let mut material_storage = resources
|
let mut material_storage = resources
|
||||||
.get_mut::<AssetStorage<StandardMaterial>>()
|
.get_mut::<AssetStorage<StandardMaterial>>()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
|
// this material renders the texture normally
|
||||||
let material_handle = material_storage.add(StandardMaterial {
|
let material_handle = material_storage.add(StandardMaterial {
|
||||||
albedo_texture: Some(texture_handle),
|
albedo_texture: Some(texture_handle),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// this material modulates the texture to make it red
|
||||||
let modulated_material_handle = material_storage.add(StandardMaterial {
|
let modulated_material_handle = material_storage.add(StandardMaterial {
|
||||||
albedo: Color::rgba(1.0, 0.0, 0.0, 0.5),
|
albedo: Color::rgba(1.0, 0.0, 0.0, 0.5),
|
||||||
albedo_texture: Some(texture_handle),
|
albedo_texture: Some(texture_handle),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// add entities to the world
|
||||||
world
|
world
|
||||||
.build()
|
.build()
|
||||||
// textured quad
|
// textured quad - normal
|
||||||
.add_entity(MeshEntity {
|
.add_entity(MeshEntity {
|
||||||
mesh: quad_handle,
|
mesh: quad_handle,
|
||||||
material: material_handle,
|
material: material_handle,
|
||||||
@ -43,7 +50,7 @@ fn setup(world: &mut World, resources: &mut Resources) {
|
|||||||
rotation: Rotation::from_euler_angles(0.0, std::f32::consts::PI / 3.0, 0.0),
|
rotation: Rotation::from_euler_angles(0.0, std::f32::consts::PI / 3.0, 0.0),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
})
|
})
|
||||||
// textured quad modulated
|
// textured quad - modulated
|
||||||
.add_entity(MeshEntity {
|
.add_entity(MeshEntity {
|
||||||
mesh: quad_handle,
|
mesh: quad_handle,
|
||||||
material: modulated_material_handle,
|
material: modulated_material_handle,
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
duration='3'
|
duration='2'
|
||||||
run_example() {
|
run_example() {
|
||||||
|
cargo build --example $1
|
||||||
timeout "$duration" cargo run --example $1
|
timeout "$duration" cargo run --example $1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user