17 releases

0.3.0 Dec 23, 2024
0.2.0 Dec 23, 2024
0.1.14 Apr 30, 2024

#643 in Game dev

Download history 18/week @ 2024-09-19 21/week @ 2024-09-26 1/week @ 2024-10-31 2/week @ 2024-12-05 5/week @ 2024-12-12 228/week @ 2024-12-19 41/week @ 2024-12-26

274 downloads per month

WTFPL license

52KB
193 lines

bevy_text_animation

Crates.io Docs.rs License

screenshot

text animation library for Bevy, just like typewriter effect.

see examples for usage.

Versions

bevy bevy_text_animation
0.15 0.3
0.14 0.2
0.13 0.1

Usage

simple.rs

use bevy::prelude::*;
use bevy_text_animation::{TextAnimationFinished, TextAnimatorPlugin, TextSimpleAnimator};

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_plugins(TextAnimatorPlugin)
        .add_systems(Startup, setup)
        .add_systems(Update, key_handler)
        .add_systems(Update, event_handler)
        .run();
}

fn setup(
    mut commands: Commands,
) {
    commands.spawn(Camera2d::default());

    commands.spawn((
        Text2d::new(""),
        TextFont {
            font_size: 60.0,
            ..default()
        },
        TextColor(Color::WHITE),
    )).insert(TextSimpleAnimator::new("Hello, World!", 8.0));
}

fn key_handler(
    keyboard_input: Res<ButtonInput<KeyCode>>,
    mut query: Query<&mut TextSimpleAnimator>,
) {
    for mut animator in query.iter_mut() {
        if keyboard_input.just_pressed(KeyCode::Space) {
            animator.play();
        }
    }
}

fn event_handler(
    mut events: EventReader<TextAnimationFinished>,
) {
    for event in events.read() {
        println!("Text Animation finished for entity (id: {:?})", event.entity);
    }
}

TODOs

  • multiple sections
  • alpha color animation

Dependencies

~51–83MB
~1.5M SLoC