#braille #widgets #characters #ratatui #kitty #unicode #terminal-window

bevy_terminal_display

Bevy游戏引擎的一个插件,通过使用Unicode盲文字符将渲染输出到终端

5个版本

0.4.3 2024年8月24日
0.4.2 2024年8月1日
0.4.1 2024年8月1日
0.4.0 2024年7月31日
0.3.0 2024年7月24日

#566 in 游戏开发

Download history 93/week @ 2024-07-20 296/week @ 2024-07-27 35/week @ 2024-08-03 4/week @ 2024-08-10

每月428次下载

0BSD OR MIT OR Apache-2.0

56KB
419

bevy_terminal_display

Crates License Tag Build Docs

Bevy引擎的一个(非常实验性的)插件,允许渲染到终端窗口。

警告:强烈推荐使用kitty终端模拟器,不仅因为其GPU加速渲染,还因为实现了kitty协议,这可以启用高级输入检测。

特性包括

  • TerminalDisplayBundle自动设置正确格式的渲染纹理
  • 后处理将颜色转换为纯黑白,然后作为盲文字符打印到终端
  • 响应终端窗口大小调整
  • TerminalInput资源,用于跟踪按下的和释放的键
  • Widget组件,用于渲染ratatui TUI小部件
  • TerminalWidget特质,用于创建自定义TUI组件
  • 日志重定向

截图

兼容性

包版本 Bevy版本
0.3-0.4 0.14
0.2 0.13

安装

crates.io

[dependencies]
bevy_terminal_display = "0.3"

在Cargo.toml中使用git URL

[dependencies.bevy_terminal_display]
git = "https://github.com/exvacuum/bevy_terminal_display.git"

示例用法

main.rs

use bevy::prelude::*;
use bevy_terminal_display;

fn main() {
    App::new()
        .add_plugins((
            DefaultPlugins.build().disable::<WinitPlugin>().disable::<LogPlugin>,
            ScheduleRunnerPlugin::run_loop(Duration::from_secs_f32(1.0 / 60.0)),
            bevy_terminal_display::TerminalDisplayPlugin::default(),
        ))
        .insert_resource(Msaa::Off) // For post-process
        .run();
}

当创建相机时

let terminal_display_bundle = bevy_terminal_display::display::components::TerminalDisplayBundle::new(3, &asset_server);

commands.spawn((
    Camera3dBundle {
        camera: Camera {
            target: terminal_display_bundle.image_handle().into(),
            ..Default::default()
        },
        ..Default::default()
    },
    terminal_display_bundle,
));

许可证

本软件包采用您选择的0BSD、Apache-2.0或MIT许可证。

依赖项

~42–80MB
~1.5M SLoC