45个版本
使用旧Rust 2015
0.13.0 | 2020年11月14日 |
---|---|
0.12.3 | 2020年10月15日 |
0.12.0 | 2020年5月6日 |
0.11.2 | 2019年3月3日 |
0.0.1 | 2016年5月17日 |
#1635 在 游戏开发
143 每月下载量
670KB
2.5K SLoC
Caper
使用rust编写的简约游戏框架。目前具有以下系统:
设置
Linux
由于使用了alsa-sys crate,Linux需要以下软件包:
Debian/Ubuntu等
apt install libasound2-dev pkg-config
Fedora/RHEL/CentOS
dnf install alsa-lib-devel
用法
extern crate caper;
use caper::game::*;
use caper::imgui::Ui;
use caper::input::Key;
use caper::mesh::gen_cube;
use caper::types::{DefaultTag, RenderItemBuilder, TransformBuilder};
use caper::utils::handle_fp_inputs;
fn main() {
// crate an instance of the game struct
let (mut game, event_loop) = Game::<DefaultTag>::new();
// define some items to be rendered
game.add_render_item(
RenderItemBuilder::default()
.vertices(gen_cube())
.instance_transforms(vec![TransformBuilder::default()
.pos((-0.5, 0.0, -5.0))
.build()
.unwrap()])
.build()
.unwrap(),
);
// run the engine update
start_loop(event_loop, move |events| {
game.update(
|_: &Ui| {},
|g: &mut Game<DefaultTag>| -> UpdateStatus {
// update the first person inputs
handle_fp_inputs(&mut g.input, &mut g.cams[0]);
// quit
if g.input.keys_down.contains(&Key::Escape) {
return UpdateStatus::Finish;
}
UpdateStatus::Continue
},
events,
)
});
}
查看 示例 并运行
cargo run --example transforms
依赖关系
~50MB
~678K SLoC