forked from StrafesNET/strafe-client
wip tickless events
This commit is contained in:
parent
6cfdb495ae
commit
9428929a99
12
src/body.rs
12
src/body.rs
@ -19,6 +19,7 @@ pub type TIMESTAMP = i64;
|
|||||||
|
|
||||||
const CONTROL_JUMP:u32 = 0b01000000;//temp
|
const CONTROL_JUMP:u32 = 0b01000000;//temp
|
||||||
impl PhysicsState {
|
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: TIMESTAMP, control_dir: glam::Vec3, controls: u32){
|
||||||
let target_tick = (time/10_000_000) as u32;//100t
|
let target_tick = (time/10_000_000) as u32;//100t
|
||||||
//the game code can run for 1 month before running out of ticks
|
//the game code can run for 1 month before running out of ticks
|
||||||
@ -55,8 +56,19 @@ impl PhysicsState {
|
|||||||
self.body.time=target_tick as TIMESTAMP*10_000_000;
|
self.body.time=target_tick as TIMESTAMP*10_000_000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//delete this
|
||||||
pub fn extrapolate_position(&self, time: TIMESTAMP) -> glam::Vec3 {
|
pub fn extrapolate_position(&self, time: TIMESTAMP) -> glam::Vec3 {
|
||||||
let dt=(time-self.body.time) as f64/1_000_000_000f64;
|
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)
|
self.body.position+self.body.velocity*(dt as f32)+self.gravity*((0.5*dt*dt) as f32)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl crate::event::EventTrait for PhysicsState {
|
||||||
|
fn next_event(&self) -> Option<crate::event::EventEnum> {
|
||||||
|
//check for collision stop events with curent contacts
|
||||||
|
//check for collision start events against (every part in the ghamemem!!)
|
||||||
|
//check to see if yee need to jump
|
||||||
|
//check to see when the next strafe tick is
|
||||||
|
None
|
||||||
|
}
|
||||||
|
}
|
10
src/event.rs
10
src/event.rs
@ -1,8 +1,10 @@
|
|||||||
enum EventEnum {
|
pub enum EventEnum {
|
||||||
//Body::CollisionStart
|
CollisionStart(crate::body::TIMESTAMP),//,Collideable),//Body::CollisionStart
|
||||||
//Body::CollisionEnd
|
CollisionEnd(crate::body::TIMESTAMP),//,Collideable),//Body::CollisionEnd
|
||||||
|
StrafeTick(crate::body::TIMESTAMP),
|
||||||
|
Jump(crate::body::TIMESTAMP),
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait EventTrait {
|
pub trait EventTrait {
|
||||||
fn next_event() -> EventEnum;
|
fn next_event(&self) -> Option<EventEnum>;
|
||||||
}
|
}
|
@ -1,2 +1,3 @@
|
|||||||
pub mod framework;
|
pub mod framework;
|
||||||
pub mod body;
|
pub mod body;
|
||||||
|
pub mod event;
|
||||||
|
Loading…
Reference in New Issue
Block a user