diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/main.rs b/src/main.rs index 319eabc..5e821f9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,7 @@ mod controllable; use avian2d::prelude::*; use bevy::{prelude::*, winit::WinitSettings}; use controllable::Player; +use lunar::DestPlanet; fn main() { println!("Hello, world!"); App::new() @@ -16,15 +17,19 @@ fn main() { Startup, ( setup::setup_starting_planet, - setup::setup_init, + setup::setup_init, + controllable::setup_player_with_controls, lunar::setup_moon ) ) .add_systems( Update, ( - update_gravitational_forces, - lunar::update_lunar_transform + lunar::update_lunar_transform, + controllable::player_movements, + controllable::camera_follow_player, + controllable::check_transition_level, + update_gravitational_forces, ) ) .run(); @@ -49,7 +54,7 @@ fn calculate_force_vector( pos_actor: Vec2, pos_incident: Vec2, ) -> Vec2 { - let grav_const = 100.0; + let grav_const = 15.0; (grav_const * mass_actor * mass_incident / (pos_actor.distance_squared(pos_incident))) * Vec2 { x: pos_actor.x - pos_incident.x, @@ -63,17 +68,24 @@ fn calculate_force_vector( } fn update_gravitational_forces( mut query_planet: Query<(Entity, &StartPlanet, &Transform)>, + mut query_planet2: Query<(Entity, &DestPlanet, &Transform)>, mut query_object: Query<(Entity, &Player, &mut ExternalForce, &Transform)>, ) { let (_es, ps, ts) = query_planet.single_mut(); + let (_es, planet2, trans2) = query_planet2.single_mut(); let (_ed, player, mut exd, td) = query_object.single_mut(); - let f = calculate_force_vector( + let f0 = calculate_force_vector( ps.planet_mass_kg, player.mass_kg, ts.translation.xy(), td.translation.xy(), ); - info!("Force: {}, Transform: {}", f, td.translation); - exd.apply_force(f); + let f1 = calculate_force_vector( + planet2.planet_mass_kg, + player.mass_kg, + trans2.translation.xy(), + td.translation.xy()); + //info!("Force: {}, Transform: {}", f, td.translation); + exd.apply_force(f0).apply_force(f1); } |