diff --git a/src/body.rs b/src/body.rs index 85ecd4e..353dfdd 100644 --- a/src/body.rs +++ b/src/body.rs @@ -1,12 +1,12 @@ pub struct Body { pub position: glam::Vec3,//I64 where 2^32 = 1 u pub velocity: glam::Vec3,//I64 where 2^32 = 1 u/s - pub time: TIMESTAMP,//nanoseconds x xxxxD! + pub time: TIME,//nanoseconds x xxxxD! } pub struct PhysicsState { pub body: Body, - pub time: i64, + pub time: TIME, pub tick: u32, pub gravity: glam::Vec3, pub friction: f32, @@ -15,12 +15,12 @@ pub struct PhysicsState { pub walkspeed: f32, } -pub type TIMESTAMP = i64; +pub type TIME = i64; const CONTROL_JUMP:u32 = 0b01000000;//temp impl PhysicsState { //delete this, we are tickless gamers - pub fn run(&mut self, time: TIMESTAMP, control_dir: glam::Vec3, controls: u32){ + pub fn run(&mut self, time: TIME, control_dir: glam::Vec3, controls: u32){ let target_tick = (time/10_000_000) as u32;//100t //the game code can run for 1 month before running out of ticks while self.tick glam::Vec3 { + pub fn extrapolate_position(&self, time: TIME) -> glam::Vec3 { let dt=(time-self.body.time) as f64/1_000_000_000f64; self.body.position+self.body.velocity*(dt as f32)+self.gravity*((0.5*dt*dt) as f32) }