8个版本
0.4.0 | 2023年4月11日 |
---|---|
0.3.2 | 2020年2月17日 |
0.2.0 | 2020年1月13日 |
0.1.2 | 2019年12月30日 |
#230 in 命令行界面
115 monthly downloads
用于 2 crates
65KB
1K SLoC
ruscii
一个用于在Rust中编写终端应用程序和游戏的简单易用的库。
此项目的目标是使基于文本的游戏开发变得简单易行。任何贡献、问题或拉取请求都将非常受欢迎!
特性
- 优化以在终端中快速渲染
- 多平台(Linux、Windows和macOS)
- 对于Linux,需要有一个x11服务器(大多数发行版都包含一个)。内部,
ruscii
使用它来创建透明按键按下和按键释放事件。
- 对于Linux,需要有一个x11服务器(大多数发行版都包含一个)。内部,
- 支持多个终端(见 Crossterm的终端支持)
- 在终端中提供按键和释放事件(对游戏至关重要!)
- 简洁的API - 用相对较少的行编写基于终端的游戏!
- 提供一种简单的方法来恢复错误状态的终端
依赖项
Linux
要在Linux中编译使用 ruscii
编写的应用程序,您必须安装X11开发库。
如果您的系统没有这些库,您可以在终端中使用以下命令根据您的特定Linux发行版安装它们。
- 在Ubuntu或Debian
sudo apt install libx11-dev
- 在Fedora、RHEL或CentOS
sudo dnf install xorg-x11-server-devel
Windows和macOS
Windows和macOS没有特殊的依赖项。
示例
您可以在 示例文件夹 中找到使用 ruscii
编写的应用程序和游戏的几个示例。
要测试一个示例,请使用以下命令使用带有示例标志安装 ruscii
。
cargo install ruscii --examples
~/.cargo/bin/<example_name>
安装后,运行它
cargo run --example <example_name> --release
示例游戏
太空侵略者(《200行》)
乒乓球(《150行》)
注意:第一次播放
asciimedia
可能会卡顿;再次播放可以解决这个问题。
使用 ruscii
的项目
- thrust - 一个简单的太空射击游戏。在终端中使用基于字符的用户界面运行。
- terminal-tetris - 🕹️ 使用 Rust 编写的终端版俄罗斯方块。
- chemcreator - 用于识别有机分子的文本工具。
如果您有一个使用 ruscii
的项目并希望它出现在这里,请提交一个问题!
入门
安装
将以下行添加到您的 Cargo.toml
文件中的 [dependencies]
部分
ruscii = "0.4.0"
在自己的终端中测试它!
将以下代码复制到您的 main.rs
文件中以运行基本的 ruscii
应用程序
use ruscii::app::{App, State};
use ruscii::terminal::{Window};
use ruscii::drawing::{Pencil};
use ruscii::keyboard::{KeyEvent, Key};
use ruscii::spatial::{Vec2};
use ruscii::gui::{FPSCounter};
fn main() {
let mut fps_counter = FPSCounter::new();
let mut app = App::new();
app.run(|app_state: &mut State, window: &mut Window| {
for key_event in app_state.keyboard().last_key_events() {
match key_event {
KeyEvent::Pressed(Key::Esc) => app_state.stop(),
KeyEvent::Pressed(Key::Q) => app_state.stop(),
_ => (),
}
}
fps_counter.update();
let mut pencil = Pencil::new(window.canvas_mut());
pencil.draw_text(&format!("FPS: {}", fps_counter.count()), Vec2::xy(1, 1));
});
}
调试
调试终端应用程序通常很困难,因为应用程序的输出和回溯都显示在同一个终端视图中。ruscii
使用 标准输出 来渲染您的应用程序,并使用 标准错误 来记录错误信息。我们建议您将 标准错误 重定向到文件,以便稍后检查。
要运行您的项目并将错误日志保存到文件,请运行以下命令
export RUST_BACKTRACE=1
cargo run 2> my_stderr
所有错误输出都将保存到项目目录中的 my_stderr
。
依赖项
~2–32MB
~414K SLoC