18 个版本
0.8.0 | 2020年3月3日 |
---|---|
0.7.0 | 2018年6月20日 |
0.6.0 | 2018年3月11日 |
0.4.0 | 2017年7月14日 |
0.2.2 | 2016年3月14日 |
#5 在 #effort
用于 3 个crate(通过 process_guard)
23KB
434 行
帧时钟和计时器
ticktock
使访问帧时序迭代器以实现常帧率变得非常容易
// run with a constant framerate of 30 fps
for (tick, now) in Clock::framerate(30.0).iter() {
// ...
}
详细信息请参阅文档。
lib.rs
:
基于帧的应用程序计时模块
包含降低到固定帧率的以及测量实际帧率的函数。
一个示例游戏循环
use std::time;
use ticktock::{Clock, Timer};
let now = time::Instant::now();
// initialize game
// ...
// show some fps measurements every 5 seconds
let mut fps_counter = Timer::apply(|delta_t, prev_tick| (delta_t, *prev_tick), 0)
.every(time::Duration::from_secs(5))
.start(now);
// run with a constant framerate of 30 fps
for (tick, now) in Clock::framerate(30.0).iter() {
// this loop will run approx. every 33.3333 ms
// update, render, etc
// ...
// update or display fps count
if let Some((delta_t, prev_tick)) = fps_counter.update(now) {
fps_counter.set_value(tick);
let fps = (tick - prev_tick) as f64 / delta_t.as_secs_f64();
println!("FPS: {}", fps);
}
break; // ignore, for doctests
}