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

bevy_flurx

允许您编写涉及延迟、用户输入和其他等待过程的顺序描述

17 个不稳定版本 (3 个破坏性更新)

0.6.0 2024年8月4日
0.6.0-rc.12024年7月1日
0.5.3 2024年6月4日
0.5.1 2024年5月21日
0.3.0 2024年3月14日

#4 in #game-state

Download history 153/week @ 2024-04-17 158/week @ 2024-04-24 292/week @ 2024-05-01 26/week @ 2024-05-08 132/week @ 2024-05-15 48/week @ 2024-05-22 246/week @ 2024-05-29 79/week @ 2024-06-05 6/week @ 2024-06-12 73/week @ 2024-06-26 99/week @ 2024-07-03 4/week @ 2024-07-24 127/week @ 2024-07-31

每月下载量 131
5 crate 中使用

MIT/Apache

615KB
5.5K SLoC

bevy_flurx

Crates.io MIT/Apache 2.0 Crates.io

此库提供了一种机制,可以更顺序地描述延迟、角色移动、等待用户输入和其他状态等待。

例如,这里有一个涉及等待用户输入、轻微延迟和角色移动的剪辑效果的示例。

cut_in

完整源代码可在 此处 找到。

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;
    }));
}

示例

所有示例均位于 此处

功能标志

标志名称 简短描述 默认值
音频 音频操作 true
记录 撤销/重做操作和事件 true
效果 线程/异步副作用 true
tokio 异步兼容和异步操作 false

音频

提供执行简单音频播放和等待的操作的 once::audio

  • once::audio
  • wait::audio

记录

提供 Record 以管理操作历史。

undo_redo

效果

允许将具有副作用(如异步运行时或线程)的操作转换为引用透明的操作。

tokio

您将能够编写依赖于 tokio 的运行时的过程。

变更日志

请参阅 此处

兼容 Bevy 版本

bevy_flurx bevy
0.3.0 0.13.0
0.3.1 0.13.1
0.3.2 ~ 0.5.3 0.13.2
0.6.0 0.4.1

许可证

此 crate 受 MIT 许可证或 Apache 许可证 2.0 的许可。

依赖项

~33–72MB
~1M SLoC