From 923c2ad281e9c379b2972e6ce16c69919c075253 Mon Sep 17 00:00:00 2001 From: Niklas Eicker Date: Mon, 26 May 2025 21:44:17 +0200 Subject: [PATCH] New cooldown example (#19234) # Objective We want to extend our examples with a new category "usage" to demonstrate common use cases (see bevyengine/bevy-website#2131). This PR adds an example of animated cooldowns on button clicks. ## Solution - New example in "usage" directory - Implement a cooldown with an animated child Node ## Testing - I ran this on Linux - [x] test web (with bevy CLI: `bevy run --example cooldown web --open`) --------- Co-authored-by: Thierry Berger Co-authored-by: Ida "Iyes" <40234599+inodentry@users.noreply.github.com> --- Cargo.toml | 11 ++ assets/textures/food_kenney.png | Bin 0 -> 67313 bytes examples/README.md | 7 ++ examples/usage/cooldown.rs | 179 ++++++++++++++++++++++++++++++++ 4 files changed, 197 insertions(+) create mode 100644 assets/textures/food_kenney.png create mode 100644 examples/usage/cooldown.rs diff --git a/Cargo.toml b/Cargo.toml index e64ded8a2f..8dd90e46b9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4390,3 +4390,14 @@ name = "Extended Bindless Material" description = "Demonstrates bindless `ExtendedMaterial`" category = "Shaders" wasm = false + +[[example]] +name = "cooldown" +path = "examples/usage/cooldown.rs" +doc-scrape-examples = true + +[package.metadata.example.cooldown] +name = "Cooldown" +description = "Example for cooldown on button clicks" +category = "Usage" +wasm = true diff --git a/assets/textures/food_kenney.png b/assets/textures/food_kenney.png new file mode 100644 index 0000000000000000000000000000000000000000..a5fe374eba306e2c8bbd0e9827172b7ba4703127 GIT binary patch literal 67313 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 z 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 Z)H220_;;z-<);qF0#8>zmvv4FO#m`&cufER literal 0 HcmV?d00001 diff --git a/examples/README.md b/examples/README.md index 377d8ecc0a..097bba2b3d 100644 --- a/examples/README.md +++ b/examples/README.md @@ -67,6 +67,7 @@ git checkout v0.4.0 - [Tools](#tools) - [Transforms](#transforms) - [UI (User Interface)](#ui-user-interface) + - [Usage](#usage) - [Window](#window) - [Tests](#tests) @@ -574,6 +575,12 @@ Example | Description [Viewport Node](../examples/ui/viewport_node.rs) | Demonstrates how to create a viewport node with picking support [Window Fallthrough](../examples/ui/window_fallthrough.rs) | Illustrates how to access `winit::window::Window`'s `hittest` functionality. +## Usage + +Example | Description +--- | --- +[Cooldown](../examples/usage/cooldown.rs) | Example for cooldown on button clicks + ## Window Example | Description diff --git a/examples/usage/cooldown.rs b/examples/usage/cooldown.rs new file mode 100644 index 0000000000..7b86c5845e --- /dev/null +++ b/examples/usage/cooldown.rs @@ -0,0 +1,179 @@ +//! Demonstrates implementing a cooldown in UI. +//! +//! You might want a system like this for abilities, buffs or consumables. +//! We create four food buttons to eat with 2, 1, 10, and 4 seconds cooldown. + +use bevy::{color::palettes::tailwind, ecs::spawn::SpawnIter, prelude::*}; + +fn main() { + App::new() + .add_plugins(DefaultPlugins) + .add_systems(Startup, setup) + .add_systems( + Update, + ( + activate_ability, + animate_cooldowns.run_if(any_with_component::), + ), + ) + .run(); +} + +fn setup( + mut commands: Commands, + mut texture_atlas_layouts: ResMut>, + asset_server: Res, +) { + commands.spawn(Camera2d); + let texture = asset_server.load("textures/food_kenney.png"); + let layout = TextureAtlasLayout::from_grid(UVec2::splat(64), 7, 7, None, None); + let texture_atlas_layout = texture_atlas_layouts.add(layout); + commands.spawn(( + Node { + width: Val::Percent(100.), + height: Val::Percent(100.), + align_items: AlignItems::Center, + justify_content: JustifyContent::Center, + column_gap: Val::Px(15.), + ..default() + }, + Children::spawn(SpawnIter( + [ + FoodItem { + name: "an apple", + cooldown: 2., + index: 2, + }, + FoodItem { + name: "a burger", + cooldown: 1., + index: 23, + }, + FoodItem { + name: "chocolate", + cooldown: 10., + index: 32, + }, + FoodItem { + name: "cherries", + cooldown: 4., + index: 41, + }, + ] + .into_iter() + .map(move |food| build_ability(food, texture.clone(), texture_atlas_layout.clone())), + )), + )); + commands.spawn(( + Text::new("*Click some food to eat it*"), + Node { + position_type: PositionType::Absolute, + top: Val::Px(5.0), + left: Val::Px(15.0), + ..default() + }, + )); +} + +struct FoodItem { + name: &'static str, + cooldown: f32, + index: usize, +} + +fn build_ability( + food: FoodItem, + texture: Handle, + layout: Handle, +) -> impl Bundle { + let FoodItem { + name, + cooldown, + index, + } = food; + let name = Name::new(name); + + // Every food item is a button with a child node. + // The child node's height will be animated to be at 100% at the beginning + // of a cooldown, effectively graying out the whole button, and then getting smaller over time. + ( + Node { + width: Val::Px(80.0), + height: Val::Px(80.0), + flex_direction: FlexDirection::ColumnReverse, + ..default() + }, + BackgroundColor(tailwind::SLATE_400.into()), + Button, + ImageNode::from_atlas_image(texture, TextureAtlas { layout, index }), + Cooldown(Timer::from_seconds(cooldown, TimerMode::Once)), + name, + children![( + Node { + width: Val::Percent(100.), + height: Val::Percent(0.), + ..default() + }, + BackgroundColor(tailwind::SLATE_50.with_alpha(0.5).into()), + )], + ) +} + +#[derive(Component)] +struct Cooldown(Timer); + +#[derive(Component)] +#[component(storage = "SparseSet")] +struct ActiveCooldown; + +fn activate_ability( + mut commands: Commands, + mut interaction_query: Query< + ( + Entity, + &Interaction, + &mut Cooldown, + &Name, + Option<&ActiveCooldown>, + ), + (Changed, With