From e9c9afe2b6b77c8727d1e327c3a0e717541acf58 Mon Sep 17 00:00:00 2001 From: "Elijah C. Voigt" Date: Sat, 18 May 2024 17:49:34 -0700 Subject: [PATCH] Nudge letters on buttons for better button feel --- src/tutorial.rs | 1 + src/ui.rs | 24 +++++++++++++----------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/tutorial.rs b/src/tutorial.rs index ba2ae08..df6c7a8 100644 --- a/src/tutorial.rs +++ b/src/tutorial.rs @@ -46,6 +46,7 @@ impl Plugin for TutorialPlugin { ( start_tutorial_on_play .run_if(in_state(GameState::Play)) + .run_if(in_state(MenuState::Off)) .run_if(not(resource_exists::)) .run_if(any_component_removed::()), clear_tutorial_progress.run_if(on_event::>()), diff --git a/src/ui.rs b/src/ui.rs index 3a16663..fe44e2f 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -97,20 +97,24 @@ fn interactive_button( Interaction::None => { ui_image.texture = resting_handle.clone(); let mut ts = texts.iter_many_mut(children.iter_descendants(entity)); - while let Some((_t, mut s)) = ts.fetch_next() { - s.right = Val::Auto; - debug!("TODO: Change text color"); - debug!("TODO: Change position"); + while let Some((mut t, mut s)) = ts.fetch_next() { + s.right = Val::Px(0.0); + s.bottom = Val::Px(0.0); + t.sections.iter_mut().for_each(|mut section| { + section.style.color = Color::WHITE; + }); } } Interaction::Hovered => { ui_image.texture = depressed_handle.clone(); writer.send(audio::AudioEvent::MenuHover); let mut ts = texts.iter_many_mut(children.iter_descendants(entity)); - while let Some((_t, mut s)) = ts.fetch_next() { - s.right = Val::Px(0.0); - debug!("TODO: Change text color"); - debug!("TODO: Change position"); + while let Some((mut t, mut s)) = ts.fetch_next() { + s.right = Val::Px(-2.0); + s.bottom = Val::Px(-1.0); + t.sections.iter_mut().for_each(|mut section| { + section.style.color = Color::hex("E8E8E8").unwrap(); + }); } } Interaction::Pressed => { @@ -118,9 +122,7 @@ fn interactive_button( writer.send(audio::AudioEvent::MenuSelect); let mut ts = texts.iter_many_mut(children.iter_descendants(entity)); while let Some((_t, mut s)) = ts.fetch_next() { - s.right = Val::Px(0.0); - debug!("TODO: Change text color"); - debug!("TODO: Change position"); + // TODO: Change text color } } });