17 个版本

0.8.3 2023 年 11 月 8 日
0.8.0 2023 年 9 月 11 日
0.7.3 2023 年 1 月 15 日
0.6.0 2022 年 12 月 25 日
0.4.0 2022 年 11 月 23 日

#240命令行界面

Download history 6/week @ 2024-03-10 1/week @ 2024-03-24 10/week @ 2024-03-31 348/week @ 2024-04-07

每月 70 次下载

MIT 许可证

54KB
1.5K SLoC

term2d

终端模拟器的简单 2D 绘图引擎。

示例:绘制一些文本和红色像素

use term2d::model::color::Color;
use term2d::model::event::Event;
use term2d::model::key::Key;
use term2d::model::point::Point;
use term2d::model::rgba::Rgba;
use term2d::view::canvas::halfblock::HalfblockCanvas;
use term2d::view::canvas::Canvas;
use term2d::App;
use term2d::AppBuilder;

fn event_fn(_app: &App, _model: &mut (), event: Event) -> bool {
    match event {
        Event::Key(key) => match key {
            Key::Char('q') => return false,
            Key::Ctrl('c') => return false,
            _ => {}
        },
        Event::Resize(_) => {}
        Event::Elapse => {}
    }

    true
}

fn view_fn(app: &App, _model: &(), canvas: &mut HalfblockCanvas) {
    canvas.clear();
    canvas.draw_text(
        &Point::new(2, 0),
        &Color::text(),
        &format!("press 'q' to quit, frame: {}", app.frame_count),
    );
    canvas.draw_pixel(&Point::new(10, 7), &Rgba::red());
    canvas.display();
}

fn main() {
    AppBuilder::new(|_| ())
        .event(event_fn)
        .view(view_fn)
        .fps(20)
        .run();
}

依赖关系

~245–325KB