Skip to content

Commit

Permalink
Attach camera to capsule, add toggle between cameras
Browse files Browse the repository at this point in the history
Fixes #47
  • Loading branch information
jwright159 committed Oct 18, 2023
1 parent 3911f63 commit 4a99423
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 2 deletions.
5 changes: 5 additions & 0 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ fn set_window_icon(
primary.set_window_icon(Some(icon));
}

#[derive(Component)]
pub struct OverviewCamera;

fn setup(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
Expand All @@ -79,6 +82,7 @@ fn setup(

commands.spawn(DirectionalLightBundle {
directional_light: DirectionalLight {
illuminance: 10000.0,
shadows_enabled: true,
..default()
},
Expand All @@ -103,5 +107,6 @@ fn setup(
reversed_zoom: true,
..default()
},
OverviewCamera,
));
}
23 changes: 21 additions & 2 deletions src/player_controller/mod.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use bevy::prelude::*;
use bevy::{prelude::*, input::common_conditions::input_just_pressed};
use bevy_xpbd_3d::prelude::*;

use crate::gravity::AffectedByGravity;
use crate::{gravity::AffectedByGravity, OverviewCamera};

pub struct PlayerControllerPlugin;

Expand All @@ -11,10 +11,16 @@ impl Plugin for PlayerControllerPlugin
app
.add_systems(Startup, (
setup,
))
.add_systems(Update, (
toggle_camera.run_if(input_just_pressed(KeyCode::Tab)),
));
}
}

#[derive(Component)]
pub struct PlayerCamera;

fn setup(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
Expand Down Expand Up @@ -45,5 +51,18 @@ fn setup(
},
..default()
},
PlayerCamera,
)).set_parent(body);
}

pub fn toggle_camera(
mut overview_camera: Query<&mut Camera, (With<OverviewCamera>, Without<PlayerCamera>)>,
mut player_camera: Query<&mut Camera, (With<PlayerCamera>, Without<OverviewCamera>)>,
)
{
let mut overview_camera = overview_camera.single_mut();
overview_camera.is_active = !overview_camera.is_active;

let mut player_camera = player_camera.single_mut();
player_camera.is_active = !player_camera.is_active;
}

0 comments on commit 4a99423

Please sign in to comment.