1 个不稳定版本
0.1.0 | 2024 年 6 月 1 日 |
---|
#13 in #scroll
15KB
268 行
Rust 编写的终端动画引擎
这是一个用 Rust 编写的终端动画引擎。它提供了一些文本效果,可以用于在终端中动画化文本。
功能
文本效果
-
散布:这个效果使文本看起来像是在终端上散布。在
scattering.rs
中实现。 -
打字机:这个效果使文本看起来像是在实时输入。在
typewriter.rs
中实现。 -
滚动:这个效果使文本看起来像是在终端上滚动。有两种这种效果:ScrollingLeft 和 ScrollingRight。在
scrolling.rs
中实现。 -
闪烁:这个效果使文本在终端中闪烁。在
blinking.rs
中实现。 -
颜色变化:这个效果会改变终端中文本的颜色。在
color_changing.rs
中实现。 -
上升:这个效果使文本看起来像是在终端上升。在
climbing.rs
中实现。
动画
Animation
结构用于从一系列帧创建动画。每一帧由一个文本字符串和文本效果组成。动画按顺序播放每一帧,在终端显示之前将文本效果应用于文本。
用法
要使用终端动画引擎,使用一系列 Frame
创建一个 Animation
,然后在循环中调用 animation.next_frame()
。以下是一个示例
let frames = vec![
Frame::new("I am in love with you please marry me!", Climbing),
Frame::new("Alice alice alice alice alice alice", Climbing),
Frame::new("I want to be with you forever!", Climbing),
];
let mut animation = Animation::new(frames, Duration::from_millis(100));
loop {
if let Err(e) = animation.next_frame() {
eprintln!("Error displaying frame: {}", e);
break;
}
}
依赖关系
~1.7–9MB
~71K SLoC