#graphics #processing #game #multimedia

pronto-graphics

Rust 的快速简单图形库

4 个版本 (2 个破坏性更新)

0.4.0 2022年4月17日
0.3.1 2022年4月16日
0.3.0 2022年4月16日
0.2.1 2022年4月15日

可视化 类别下排名第 216

MIT 许可证

210KB
691

Pronto Graphics

|| Docs.rs || Lib.rs || Crates.io ||

这是一个为那些只想在屏幕上显示一些图形而无需处理图形库的技术细节的库。只需创建一个窗口,然后开始绘制即可。最小化设置,最小化麻烦,最小化干扰您的代码结构。

灵感来源于 Processing

示例

您想在屏幕上显示一些圆形吗?

let mut pg = Window::new(800, 600, "Circles!");
loop {
    pg.circle((100., 100.), 15.);

    pg.fill_color(Color::BLUE);
    pg.circle((300., 450.), 24.);
    
    pg.update();
}

或者纹理?

let mut pg = Window::new_fullscreen();
let my_texture = pg.load_texture("my_texture.png").unwrap();
loop {
    pg.texture((100., 250.), my_texture, 100., 150.);
    
    pg.update();
}

文字呢?

let mut pg = Window::new(720, 480, "Text!");
loop {
    pg.font_color((0xEE, 0x44, 0x88));
    pg.font_size(30);
    pg.text((100., 100.), "Greetings!");
    
    pg.update();
}

想按一些键并点击一些东西吗?

let mut pg = Window::new_fullscreen();
loop {
    if pg.key_just_pressed(Key::SPACE) {
        println!("Action!");
    }

    if pg.mouse_pressed(Button::LEFT) {
        pg.circle(pg.mouse_position(), 16.);
    }

    pg.update();
}

安装

由于 Pronto Graphics 使用 SFML 进行渲染,特别是用于渲染的 SFML Rust 绑定,因此它的先决条件与 SFML Rust 绑定相同,即需要安装 SFML 库。这可能在未来的版本中发生变化。

# Cargo.toml

[dependencies]
pronto-graphics = "0.4.0"

特性

  • 圆形、矩形、正方形
  • 线条
  • 纹理
  • 文本
  • 键盘
  • 鼠标
  • 文档注释
  • 自定义字体

计划中

  • 变换(旋转、原点、文本对齐)
  • 三角形
  • 任意形状
  • 音频
  • 绘制调用缓存/批处理
  • 绘制自定义(轮廓厚度等)

贡献

我也没有经验的开放源代码,所以不要犹豫提出拉取请求 :)

只需确保解释您添加或更改的内容,并且为任何将公开给最终用户的内容适当地添加 文档注释

备注

  • 调查是否为性能考虑,在每个绘制调用中创建一个新的 SFML 对象,而不是重用它们。
  • 为不同的特性添加单独的示例,因为 hello-world.rs 已经变得相当大。

依赖

~2.3–10MB
~78K SLoC