21个版本 (4个重大更新)

0.6.1 2022年11月27日
0.6.0 2022年11月7日
0.4.6 2022年8月23日
0.4.5 2022年7月12日
0.1.1 2022年4月20日

#848 in 游戏开发

Download history · Rust 包仓库 16/week @ 2024-03-11 · Rust 包仓库 14/week @ 2024-03-18 · Rust 包仓库 20/week @ 2024-03-25 · Rust 包仓库 40/week @ 2024-04-01 · Rust 包仓库 12/week @ 2024-04-08 · Rust 包仓库 9/week @ 2024-04-15 · Rust 包仓库 19/week @ 2024-04-22 · Rust 包仓库 8/week @ 2024-04-29 · Rust 包仓库 10/week @ 2024-05-06 · Rust 包仓库 23/week @ 2024-05-13 · Rust 包仓库 16/week @ 2024-05-20 · Rust 包仓库 12/week @ 2024-05-27 · Rust 包仓库 13/week @ 2024-06-03 · Rust 包仓库 13/week @ 2024-06-10 · Rust 包仓库 15/week @ 2024-06-17 · Rust 包仓库 18/week @ 2024-06-24 · Rust 包仓库

59 每月下载量
9 个包中使用(通过 srs2dge-core

MIT 协议

33KB
876

main_game_loop

dependency status build status crates.io docs.rs

使用某些随机 Engine 的示例用法

struct App {
    window: Window,
    ws: WindowState,
    update_loop: UpdateLoop,
}

impl App {
    fn init(target: &EventLoopTarget) -> Self {
        let window = WindowBuilder::new().build(target).unwrap();
        let ws = WindowState::new(&window);
        let update_loop = UpdateLoop::new(UpdateRate::PerSecond(60));

        Self {
            window,
            ws,
            update_loop,
        }
    }

    fn event(&mut self, event: Event, _: &EventLoopTarget, control: &mut ControlFlow) {
        self.ws.event(&event);

        if self.ws.should_close {
            *control = ControlFlow::Exit;
        }
    }

    fn draw(&mut self) {
        self.update_loop.update(|| {
            // update();
        });

        // draw();
    }
}

fn main() {
    run_app!(App);
}

使用不同的初始化、事件和绘图函数的示例用法

use main_game_loop::prelude::*;

struct App {
    // ...
}

async fn init(target: &EventLoopTarget) -> App {
    // init

    App {
        // ..
    }
}

impl App {
    fn draw(&mut self) {
        // draw
    }
}

#[tokio::main]
async fn main() {
    run_app!(
        async init,
        |_, _, _, _| {
            // events
        },
        App::draw
    );
}

依赖项

~6–19MB
~267K SLoC