为了编写游戏,我需要在终端的不同位置写一些字符。我用了
println!("{c:>width$}", c="*", width=x);
x
位置几乎可以,但是当我按 space 时,我想更改y
位置。有没有办法做到这一点?
答案 0 :(得分:6)
对于终端控制,我建议使用诸如Termion之类的包。使用Termion看起来像:
fn main() {
let mut stdout = stdout().into_raw_mode().unwrap();
writeln!(stdout, "{}Placed at 3,7",
termion::cursor::Goto(3, 7));
}
请参阅examples。
答案 1 :(得分:4)
你也可以使用ncurses-rs,这是一个围绕ncurse库的瘦包装,或Cursive,这是一个更高级别,允许你在终端创建各种小部件。
答案 2 :(得分:0)
您也可以为此使用crossterm,它为您提供了一种处理光标移动和许多其他跨平台内容的方法。
如果您不想拥有其他东西,将会很快发布具有功能标记以禁用其他功能的版本。