3 个不稳定版本

0.2.0 2024年7月10日
0.1.1 2024年6月24日
0.1.0 2024年6月1日

#113 in 模拟

Download history 201/week @ 2024-05-28 18/week @ 2024-06-04 6/week @ 2024-06-11 90/week @ 2024-06-18 55/week @ 2024-06-25 116/week @ 2024-07-09 2/week @ 2024-07-16

每月118次下载

MIT 许可证

21KB
423 行代码

lifers-raylib

lifers 的 Raylib 前端。

用法

要使用此前端,只需创建一个细胞类型

// Simple Game of Life-like cell
struct Cell {
    is_alive: bool
}

您的细胞不必如此简单,它们可以有多个属性(类型、组等)。

现在只需为它实现 RenderCell<Color>

use raylib::color::Color;
use lifers::frontend::RenderCell;

impl RenderCell<Color> for Cell {
    fn render_cell(&self) -> Color {
        if cell.is_alive {
            Color::WHITE
        } else {
            Color::BLACK
        }
    }
}

然后您可以使用它来创建一个 Automaton 并将其传递给 RaylibFrontend(或使用 FrontendBuilder)。

另外,请参阅 examples文档


lib.rs:

lifers 的 Raylib 前端。

提供 RaylibFrontend 实现来完成所有的显示和渲染工作。建议使用 FrontendBuilder 以便于使用。

注意:请参阅对应模块以了解不同类型的自动机。

前端可以在事件循环中使用,类似于典型的 Raylib 应用程序

# use lifers::prelude::*;
# use lifers_raylib::generic::FrontendBuilder;
let game = /* Automaton */
#   todo!();
let mut frontend = FrontendBuilder::new((480, 480))
    .finish(game);

while !frontend.window_should_close() {
    frontend.display_grid();
    frontend.tick();
}

依赖关系

~7–15MB
~194K SLoC