diff --git a/src/flycam.rs b/src/flycam.rs index be52d2a..d6328d0 100644 --- a/src/flycam.rs +++ b/src/flycam.rs @@ -12,7 +12,7 @@ use heron::{ CollisionEvent, }; -pub const PLANET_RADIUS: f32 = 75.0; +pub const PLANET_RADIUS: f32 = 150.0; const PLAYER_DIST: f32 = PLANET_RADIUS + 100.0; const CAM_DIST: f32 = 50.0; @@ -91,7 +91,7 @@ fn setup_player(mut commands: Commands, asset_server: Res) { .insert(PlayerState::default()); } -fn setup_dbg_ui(mut commands: Commands, asset_server: Res) { +fn setup_ui(mut commands: Commands, asset_server: Res) { commands.spawn_bundle(UiCameraBundle::default()); commands @@ -160,9 +160,12 @@ fn player_move( bike_xform.translation += player_state.velocity * dt; } + let look_at = bike_xform.translation; + let cam_pos = bike_xform.translation + (bike_xform.back() * CAM_DIST * 1.3) + (up * CAM_DIST); + let (mut cam_xform, _) = cam_query.single_mut(); - cam_xform.translation = bike_xform.translation + (up * CAM_DIST); - cam_xform.look_at(bike_xform.translation, Vec3::Y); + cam_xform.translation = cam_pos; + cam_xform.look_at(look_at, up); } fn player_look( @@ -282,7 +285,7 @@ impl Plugin for PlayerPlugin { .init_resource::() .init_resource::() .add_startup_system(setup_player) - .add_startup_system(setup_dbg_ui) + .add_startup_system(setup_ui) .add_system(ui_system) .add_system(player_move.label("move")) .add_system(player_look.after("move")) diff --git a/src/main.rs b/src/main.rs index 813a078..ebeef01 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,7 +14,7 @@ fn main() { .insert_resource(MovementSettings { sensitivity: 0.3, // default: 1.0 accel: 20.0, // default: 40.0 - drag: 0.1, // default: 0.05 + drag: 0.01, // default: 0.0005 gravity: 10.0, // default: 10.0 }) .add_startup_system(setup.label("world")) @@ -42,6 +42,7 @@ fn setup( intensity: 1_000.0, range: LIGHT_RANGE, color: Color::RED, + radius: 10.0, ..Default::default() }; @@ -49,6 +50,7 @@ fn setup( intensity: 1_000.0, range: LIGHT_RANGE, color: Color::BLUE, + radius: 10.0, ..Default::default() }; @@ -56,12 +58,13 @@ fn setup( intensity: 1_000.0, range: LIGHT_RANGE, color: Color::PURPLE, + radius: 10.0, ..Default::default() }; commands.insert_resource(AmbientLight { color: Color::WHITE, - brightness: 0.12, + brightness: 0.32, }); // world @@ -218,7 +221,11 @@ fn setup( }); } -fn animate_lights(mut query: Query<&mut Transform, (With, With)>) { +fn animate_lights( + time: Res