#simulation #graphics #gamedev

hypoloop

实时和烘焙模拟的低级别控制循环

8 个版本

0.1.7 2021 年 8 月 13 日
0.1.6 2021 年 8 月 12 日

#890 in 图形 API

Download history 91/week @ 2024-07-27

91 每月下载量

GPL-3.0 许可证

30KB
122

hypoloop

实时模拟和渲染的灵活游戏循环

功能

  • 恒定更新率
  • 可变显示率
  • 任意的模拟时间尺度
  • 与其它库的内置事件循环兼容
  • 实时模式可禁用以进行高速模拟

示例

use hypoloop::core::{State, Loop};

fn main() {
    // create sim with default configuration
    let mut sim = Loop::new();

    // test variable
    let mut x: f32 = 0.0;

    // create a closure containing your update logic
    let mut update_logic = move |state: &mut State| {    
        // access loop metadata via the State object    
        x += state.get_timescale();
        print!("x: {} | ", x);

        // print information about the current tick's timings
        state.debug_time();
    };
    
    // create a closure containing your display logic
    let display_logic = move |state: &State| {
        //
    };

    // run the simulation with your user-defined update and display logic
    // initialize the sim (cleans internal clocks, etc.)
    sim.init();
    loop {
        // "step" the sim forward
        sim.step(&mut update_logic, &display_logic);
    }
}

无运行时依赖