1786004955
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
use std::thread::sleep;
|
||||||
use std::time::{Duration, Instant};
|
use std::time::{Duration, Instant};
|
||||||
|
|
||||||
use self::input::InputState;
|
use self::input::InputState;
|
||||||
@@ -36,30 +37,23 @@ impl Trekstor {
|
|||||||
|
|
||||||
pub fn update(&mut self, update: UpdateFn) {
|
pub fn update(&mut self, update: UpdateFn) {
|
||||||
loop {
|
loop {
|
||||||
println!("Step");
|
|
||||||
self.input.handle_event();
|
self.input.handle_event();
|
||||||
self.last_time = self.current_time;
|
self.last_time = self.current_time;
|
||||||
self.current_time = Instant::now();
|
self.current_time = Instant::now();
|
||||||
let mut dt = self.current_time - self.last_time;
|
let dt = self.current_time - self.last_time;
|
||||||
|
|
||||||
if dt > Duration::from_millis(100) {
|
println!("Frame");
|
||||||
dt = Duration::from_millis(100);
|
|
||||||
|
if !update(&mut self.screen, &self.input) {
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
while self.accumulator > self.update_timestep {
|
self.screen.flush();
|
||||||
println!("Frame");
|
self.input.finish();
|
||||||
|
|
||||||
if !update(&mut self.screen, &self.input) {
|
let wait_time = self.update_timestep - dt;
|
||||||
return;
|
dbg!(wait_time);
|
||||||
}
|
sleep(wait_time);
|
||||||
|
|
||||||
self.screen.flush();
|
|
||||||
self.input.finish();
|
|
||||||
|
|
||||||
self.accumulator -= self.update_timestep;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.accumulator += dt;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user