#bevy #user-input #async #gamedev #game-state #game

bevy_flurx

Allows you to write sequential description of processes involving delays, user input, and other waits

12 releases

0.5.0 May 6, 2024
0.4.0 May 4, 2024
0.3.4 Apr 27, 2024
0.3.0 Mar 14, 2024

#205 in Game dev

Download history 118/week @ 2024-03-11 10/week @ 2024-03-18 312/week @ 2024-04-01 366/week @ 2024-04-08 137/week @ 2024-04-15 173/week @ 2024-04-22 169/week @ 2024-04-29 159/week @ 2024-05-06

671 downloads per month

MIT/Apache

610KB
5K SLoC

bevy_flurx

Crates.io MIT/Apache 2.0 Crates.io

This library provides a mechanism for more sequential description of delays, character movement, waiting for user input, and other state waits.

As an example, here is an example of a cut-in effect that involves waiting for user input, a slight delay, and a sprite to move.

cut_in

The full source code can be found here.

fn spawn_reactor(
    mut commands: Commands
) {
    commands.spawn(Reactor::schedule(|task| async move {
        task.will(Update, {
            wait::input::just_pressed().with(KeyCode::KeyR)
                .then(once::switch::on::<CutInBackground>())
                .then(delay::time().with(Duration::from_millis(100)))
                .then(once::switch::on::<HandsomeFerris>())
                .then(wait::both(
                    wait::switch::off::<CutInBackground>(),
                    wait::switch::off::<HandsomeFerris>(),
                ))
                .then(once::switch::on::<MoveSlowly>())
                .then(delay::time().with(Duration::from_millis(500)))
                .then(once::switch::off::<MoveSlowly>())
                .then(once::switch::on::<MoveFast>())
                .then(delay::time().with(Duration::from_millis(300)))
                .then(once::event::app_exit())
        })
            .await;
    }));
}

Example

All examples are here.

ChangeLog

Please see here.

Compatible Bevy versions

bevy_flurx bevy
0.3.0 0.13.0
0.3.1 0.13.1
0.3.2 ~ 0.5.0 0.13.2

License

This crate is licensed under the MIT License or the Apache License 2.0.

Dependencies

~40–81MB
~1.5M SLoC