#bevy #bevy-plugin #graphics #gamedev

bevy_flicker

一个易于使用的基于事件的系统,用于在精灵和网格上应用短暂的叠加层

8 个版本 (5 个破坏性版本)

0.6.0 2024年7月13日
0.5.0 2024年2月18日
0.4.0 2023年11月9日
0.3.0 2023年8月1日
0.1.1 2023年5月20日

#825 in 游戏开发

Download history 13/week @ 2024-07-01 125/week @ 2024-07-08 14/week @ 2024-07-15 44/week @ 2024-07-29

每月195 次下载

无许可证

77KB
493

Bevy Flicker

此插件便于在精灵或网格上创建特定颜色的短暂叠加/混合。

要触发闪烁,您可以发送一个FlickerStartEvent,其中包含指定颜色、长度和强度参数。

还包括一个RepeatingFlicker组件,它将在间隔期间发送FlickerStartEvent。

这也适用于具有alpha的纹理,叠加层会考虑底层纹理的alpha值,并将调整叠加层的alpha值,使其强度与不同的底层alpha值成比例。因此,底层0.2的alpha值将减少叠加层的alpha值80%。对于alpha值为0的情况,叠加层的alpha值也将为0。
请参阅此alpha示例以查看此效果的视觉效果,您将注意到底层颜色在精灵中仍然看起来是一致的。

请参阅更多完整示例(以下显示的部分)此处

use bevy_flicker::prelude::*;

fn tick(query: Query<Entity>, mut event_writer: EventWriter<FlickerStartEvent>) {
    for e in query.iter() {
        event_writer.send(
            FlickerStartEvent::builder(e)
                .with_secs(0.5)
                .with_color(Color::rgba(0.0, 0.0, 1.0, 0.2))
                .build(),
        );
    }
}


视觉示例

cargo运行 --示例sprite_flicker
svuL4w_7

cargo运行 --示例mesh_flicker
5b-1OxIy

cargo运行 --示例alpha_flicker
lzwT7Hl-

依赖项

~36–72MB
~1.5M SLoC