ruscii
An easy library to make terminal applications and games in rust.
The aim of this project is to make easier the game development in terminals. Any contribution, issue, or pull request would be welcome!
You can found several examples into the example folder.
To test an example, install ruscii
with the examples flag and run it.
cargo install ruscii --examples
~/.cargo/bin/<example_name>
Or clone the repo and execute inside of it:
cargo run --example <example_name> --release
Note: the first asciimedia
playback could be shown laggy, a second playback fix this issue.
Add the following line to your dependencies section in Cargo.toml
file:
ruscii = "0.1"
Copy the following code in your main.rs
to run the base ruscii
application:
```rust
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));
});
} ```