diff --git a/src/bin/flappy/main.rs b/src/bin/flappy/main.rs index 42179d1..41e0d70 100644 --- a/src/bin/flappy/main.rs +++ b/src/bin/flappy/main.rs @@ -184,6 +184,13 @@ fn init_first_batches( commands.spawn(Batch(4)); } +/// We have the concept of an environment "batch" which contains: +/// * The ground obstacle +/// * The pipe obstacle +/// * The pipe scoring sensor +/// +/// These are all populated via `OnAdd` observers for the respected components. +/// This makes it much more concise to spawn each part of the environment. fn populate_batch( trigger: Trigger, batches: Query<&Batch>, @@ -207,6 +214,8 @@ fn populate_batch( }); } +/// The ground population spawns a center peace and two pieces of ground +/// to the left and right of the center. fn populate_ground( trigger: Trigger, grounds: Query<&Ground>, @@ -223,6 +232,8 @@ fn populate_ground( )); } +/// Based on if this is a Top or Bottom pipe the placement changes +/// Otherwise this just spawns in the center of the batch. fn populate_pipe( trigger: Trigger, pipes: Query<&Pipe>, @@ -242,6 +253,8 @@ fn populate_pipe( )); } +/// The hitbox should cover the entire height of the screen so if the player +/// passes between the pipes it registers a point fn populate_hitbox( trigger: Trigger, mut commands: Commands, @@ -268,6 +281,7 @@ struct PipeComponents { mesh: Mesh2d, } +/// Initialize some materials and meshes used by the environment obstacles fn init_obstacle_assets( mut meshes: ResMut>, mut materials: ResMut>, @@ -413,9 +427,6 @@ fn un_pause_game(mut next: ResMut>) { next.set(PlayerState::Alive); } -// TODO: Create floor (and ceiling?) -// Q: Move bird + camera or move world around bird & camera? -// TODO: Obstacles #[derive(Component, Clone, Event)] struct Flap;