1个不稳定版本

0.0.1 2021年10月24日

#31 in #字体渲染

每月36次下载
3 个crate中(通过 firecore-engine)使用

MIT 许可证

1.5MB
7.5K SLoC

Tetra

Build Status Crates.io Documentation License

Tetra 是一个用Rust编写的简单2D游戏框架。它使用 SDL2 进行事件处理,使用 OpenGL 3.2+ 进行渲染。

特性

  • 受XNA/MonoGame启发的API
  • 高效的2D渲染,默认支持绘制调用批处理
  • 易于输入处理,通过轮询或事件,支持游戏手柄
  • 默认使用确定性的游戏循环,类似于 Fix Your Timestep
  • 内置常用构建块,例如
    • 字体渲染
    • 摄像头
    • 屏幕缩放

安装

要将Tetra添加到您的项目中,请将以下行添加到您的 Cargo.toml 文件中

tetra = "0.6"

您还需要安装 SDL2 本地库 - 详细信息请参阅 文档.

示例

要显示一个简单的窗口在屏幕上,可以使用以下代码

use firecore_tetra::graphics::{self, Color};
use firecore_tetra::{Context, ContextBuilder, State};

struct GameState;

impl State for GameState {
    fn draw(&mut self, ctx: &mut DefaultContext) -> firecore_tetra::Result {
        // Cornflower blue, as is tradition
        graphics::clear(ctx, Color::rgb(0.392, 0.584, 0.929));
        Ok(())
    }
}

fn main() -> firecore_tetra::Result {
    ContextBuilder::new("Hello, world!", 1280, 720)
        .build()?
        .run(|_| Ok(GameState))
}

您可以通过运行 cargo run --example hello_world 来查看此示例的效果。

完整的示例列表可在 此处 获取。

支持/反馈

Tetra 开发尚处于早期阶段,您可能会遇到错误/不稳定的文档/奇怪的行为。如果您发现任何问题,请随时提交问题/PR!您也可以通过 TwitterRust Game Development Discord 联系我。

依赖项

~35MB
~561K SLoC