From 8fbc6aac484e06252ed852ca9222f6c4c6e71b06 Mon Sep 17 00:00:00 2001 From: jacopograndi Date: Mon, 27 Jun 2022 20:54:40 +0200 Subject: speed --- src/main.rs | 71 +++++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 50 insertions(+), 21 deletions(-) diff --git a/src/main.rs b/src/main.rs index a3190bb..8b5121b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,20 +13,25 @@ use bevy::{ sprite::{MaterialMesh2dBundle, collide_aabb::collide}, render::camera::ScalingMode, ecs::system::EntityCommands, - math::Vec3Swizzles + math::Vec3Swizzles, + core::FixedTimestep, }; use bevy::diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin}; + fn main() { App::new() .add_plugins(DefaultPlugins) .add_startup_system(spawn_camera) .add_startup_system(setup) - .add_system(movement.label("movement")) - .add_system(camera_follow.after("movement")) .add_plugin(LogDiagnosticsPlugin::default()) .add_plugin(FrameTimeDiagnosticsPlugin::default()) + .add_stage_after(CoreStage::Update, "physics", SystemStage::parallel() + .with_run_criteria(FixedTimestep::steps_per_second(60.0)) + .with_system(movement.label("movement")) + .with_system(camera_follow.after("movement")) + ) .run(); } @@ -48,7 +53,9 @@ fn camera_follow( } #[derive(Component, Inspectable)] -pub struct Player; +pub struct Player { + speed: Vec3, +} #[derive(Component, Clone)] pub struct Collider { @@ -76,47 +83,65 @@ fn wall_collision_check( } fn movement ( - mut player_query: Query<(&Player, &mut Transform)>, + mut player_query: Query<(&mut Player, &mut Transform)>, wall_query: Query<(&Transform, &Collider), (With, Without)>, keyboard: Res>, time: Res