6个版本
0.1.4 | 2024年1月21日 |
---|---|
0.1.3 | 2023年11月19日 |
0.1.2 | 2023年9月6日 |
0.1.1 | 2023年1月17日 |
0.0.0 | 2023年1月16日 |
#517 in 游戏开发
每月下载24次
17KB
82 行
chron
具有固定时间步长的游戏循环。
特性
- 可选的帧跳过。确保在特定数量的
Tick::Render
之后至少发出一个Tick::Update
。这可以防止游戏在指定的每秒更新次数无法维持时完全不渲染。 - 可选的帧限制,以防止游戏以不必要的高帧率运行。当不使用帧限制时,帧率被解锁。
注意:帧限制器使用
std::thread::sleep
。它的精度可能或可能不足以满足平台需求。到目前为止,似乎在Linux上运行良好。
示例
use std::num::NonZeroU32;
let updates_per_second = NonZeroU32::new(50).unwrap();
let frames_per_second = NonZeroU32::new(60).unwrap();
let clock = chron::Clock::new(updates_per_second)
.with_frame_limit(frames_per_second)
.with_frame_skip(3);
for tick in clock {
match tick {
chron::Tick::Update => {
// ...
}
chron::Tick::Render { interpolation } => {
// ...
}
}
}