10个版本 (4个重大更改)

0.5.0 2023年3月30日
0.4.1 2023年2月17日
0.4.0 2023年1月15日
0.3.1 2023年1月13日
0.1.0 2018年8月3日

#600 in 游戏开发


7个Crate中使用 (4个直接使用)

MIT许可证

84KB
1.5K SLoC

unrust / uni-app

Documentation

这个库是Unrust项目的一部分,Unrust是一个纯Rust本地/wasm游戏引擎。该库为以下组件提供本地/wasm兼容层:

  • 窗口创建
  • 输入(鼠标+键盘)
  • 文件系统(本地+http[s],只读)

用法

[dependencies]
uni-app = "0.4.*"
extern crate uni_app;

fn main() {
    // create the game window (native) or canvas (web)
    let app = uni_app::App::new(uni_app::AppConfig {
        size: (800, 600),
        title: "my game".to_owned(),
        vsync: true,
        show_cursor: true,
        headless: false,
        resizable: true,
        fullscreen: false,
        intercept_close_request: false,
        icon: None,
    });
    // start game loop
    app.run(move |app: &mut uni_app::App| {
        for evt in app.events.borrow().iter() {
            // print on stdout (native) or js console (web)
            uni_app::App::print(format!("{:?}", evt));
            // exit when pressing escape
            match &evt {
                uni_app::AppEvent::KeyUp(ev) if ev.code == ScanCode::Escape => {
                    uni_app::App::exit();
                }
                _ => (),
            }
        }
    });
}

构建

作为Web应用(wasm32-unknown-unknown)

安装wasm32目标

rustup target install wasm32-unknown-unknown

安装wasm-packnpm

使用以下命令编译示例

wasm-pack build examples

这将在examples/pkg中创建一个wasm包

使用以下命令运行示例

cd www
npm install
npm run start

https://127.0.0.1:8080/打开您的浏览器

作为桌面应用(native-opengl)

从www/目录运行它以能够加载test.txt文件

cd www && cargo run --example basic --release

许可证

根据以下任一许可证授权

任选其一。

贡献

您可以通过提交拉取请求来为此库做出贡献。如果是这样,请更新CHANGELOG.md和CREDITS.md文件。如果您提供了新功能,请考虑添加一个示例作为教程/展示。

除非您明确说明,否则根据Apache-2.0许可证定义的您有意提交的任何贡献,都应如上所述双许可,没有任何额外的条款或条件。

依赖

~0–15MB
~199K SLoC