Skip to content

void-scape/pretty-text

Repository files navigation

crates.io docs.rs

Pretty Text is a text effects library for Bevy.

Demos

cargo run --bin showcase

All text effects


cargo run --bin typewriter

A typewriter demonstration


Note

demo uses an older version of bevy_pretty_text with a different syntax because one of its dependencies is not updated.

cargo run --bin demo

Bevy game demo

Getting Started

First, add bevy_pretty_text to the dependencies in your Cargo.toml:

[dependencies]
bevy_pretty_text = "0.3"

Then, you'll need to add the PrettyTextPlugin to your app.

use bevy::prelude::*;
use bevy_pretty_text::prelude::*;

fn main() {
    App::default()
        .add_plugins((DefaultPlugins, PrettyTextPlugin))
        .run();
}

And then you can make some pretty text!

fn spawn_text(mut commands: Commands, mut materials: ResMut<Assets<Rainbow>>) {
    // Spawn wavy `Text`.
    commands.spawn((
        Text::new("Hello, World!"),
        Wave::default(),
        TextFont::from_font_size(52.0),
    ));

    // Use the typewriter.
    commands.spawn((
        Typewriter::new(30.),
        Text2d::new("My text is revealed\none glyph at a time"),
        Transform::from_xyz(0., 200., 0.),
        TextFont::from_font_size(36.0),
    ));

    // Spawn a style entity.
    commands.spawn((
        PrettyStyle("my_style"),
        TextFont::from_font_size(48.0),
        effects![
            PrettyTextMaterial(materials.add(Rainbow::default())),
            Wave::default(),
        ],
    ));

    // Parse rich text and use custom style.
    commands.spawn((
        pretty!("I am |1|<0.8>*sniff*|1|<1.2> very [pretty](my_style)!|3|<1>"),
        Typewriter::new(10.0),
        TextFont::from_font_size(52.0),
        Node {
            position_type: PositionType::Absolute,
            left: Val::Px(0.0),
            bottom: Val::Px(0.0),
            ..Default::default()
        },
    ));
}

Example code demonstration


The repository examples should help you get up to speed on common usage patterns.

Feature flags

Flag Description Default feature
serialize Enable serialization for ParsedPrettyText. No

Bevy version compatibility

bevy bevy_pretty_text
0.17 0.3
0.16 0.1-0.2

License

Pretty Text is free and open source. All code in this repository is dual-licensed under either:

at your option.

About

Text effects library for the Bevy game engine.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •