#tui #用户界面 #文本 #UI #游戏引擎 #终端界面 #终端游戏

rusty_textui

用于创建简单文本用户界面的库,如终端中的文本街机游戏

3个不稳定版本

0.2.1 2023年11月21日
0.2.0 2023年11月21日
0.1.0 2023年11月10日

#1038游戏开发

MIT/Apache

13KB
201

Rusty Text UI (rusty_textui)

rusty_textui是一个简单的文本UI引擎,旨在供刚开始学习Rust的人使用。它具有简单的界面,功能足够创建基于终端的游戏或应用程序。我专门为我的终极Rust速成课程的学生创建它,以用于他们的课程项目。您可能想与rusty_audio一起使用以产生声音,并使用rusty_time进行计时。

快速开始

在您的终端中,将 rusty_textui 添加到您的项目

cargo add rusty_textui

在您的代码中

use rusty_textui::prelude::*; // Bring all the important stuff into scope

fn main() {
    // Create the screen
    let mut screen = Screen::new(80, 25, false);

    // Set up game/application logic
    let mut player_col: usize = 0;

    // Set up a main loop, with a label so it can be exited easily
    'mainloop: loop {
        // Handle user input
        for key_event in screen.get_key_events() {
            match key_event.code {
                KeyCode::Right => player_col = (player_col + 1).clamp(0, 79),
                KeyCode::Left => player_col = player_col.saturating_sub(1),
                KeyCode::Esc => break 'mainloop, // Esc key exits the main loop
                _ => {}
            }
        }

        // Draw the current state of everything
        screen.draw(player_col, 12, "X", Color::Blue);

        // Flip the frames so the one we drew to is visible, and a new blank frame is ready for us
        // to draw the next frame to.
        screen.flip();
    }
}

贡献

所有贡献均假设在MIT/Apache-2下双许可。

许可

在MIT许可和Apache许可(版本2.0)的条款下分发。

请参阅license/APACHElicense/MIT

赞助

如果您喜欢Rusty Audio,请考虑在GitHub上赞助我。 💖

依赖项

~0.8–6.5MB
~20K SLoC