From f1a98b700da335b7fe615ded4a134d1d37e8aa22 Mon Sep 17 00:00:00 2001 From: Elijah Voigt Date: Tue, 31 Dec 2024 21:03:25 -0800 Subject: [PATCH] better scaling --- src/animation.rs | 4 ++-- src/menu.rs | 47 +++++++++++++++++++++++++++++------------------ src/play.rs | 4 ++-- src/setup.rs | 4 ++-- src/view.rs | 45 +++++++++++++++++++++++++++++++-------------- 5 files changed, 66 insertions(+), 38 deletions(-) diff --git a/src/animation.rs b/src/animation.rs index aa1ec96..471aedb 100644 --- a/src/animation.rs +++ b/src/animation.rs @@ -77,9 +77,9 @@ pub(crate) fn setup_animations( // For each spot on board RangeInclusive::::new(0, 3).for_each(|x| { RangeInclusive::::new(0, 3).for_each(|y| { - let a = Vec3::new(-200.0, 0.0, 0.0); + let a = Vec3::new(-125.0, 0.0, 2.0); let b = play::card_placement(&play::PlayLocation { x, y }); - let c = Vec3::new(200.0, 0.0, 0.0); + let c = Vec3::new(125.0, 0.0, 0.0); // Serve Deck -> Spot Animation { diff --git a/src/menu.rs b/src/menu.rs index 9ee7408..e41e589 100644 --- a/src/menu.rs +++ b/src/menu.rs @@ -72,7 +72,7 @@ fn setup(mut commands: Commands, server: Res) { margin: UiRect::all(Val::Px(5.0)), padding: UiRect::all(Val::Px(5.0)), border: UiRect::all(Val::Px(1.0)), - height: Val::Px(40.0), + height: Val::Px(30.0), position_type: PositionType::Absolute, top: Val::Px(0.0), left: Val::Px(0.0), @@ -110,14 +110,14 @@ fn setup(mut commands: Commands, server: Res) { ..default() }, Node { - height: Val::Percent(40.0), + height: Val::Percent(30.0), ..default() }, )); parent .spawn(Node { - height: Val::Percent(40.0), + height: Val::Percent(30.0), flex_direction: FlexDirection::Column, align_items: AlignItems::Center, justify_content: JustifyContent::FlexEnd, @@ -198,7 +198,7 @@ fn setup_play(mut commands: Commands, server: Res) { margin: UiRect::all(Val::Px(5.0)), padding: UiRect::all(Val::Px(5.0)), border: UiRect::all(Val::Px(1.0)), - height: Val::Px(40.0), + height: Val::Px(30.0), ..default() }, BorderColor(WHITE.into()), @@ -221,7 +221,7 @@ fn setup_play(mut commands: Commands, server: Res) { margin: UiRect::all(Val::Px(5.0)), padding: UiRect::all(Val::Px(5.0)), border: UiRect::all(Val::Px(1.0)), - height: Val::Px(40.0), + height: Val::Px(30.0), ..default() }, BorderColor(WHITE.into()), @@ -248,7 +248,7 @@ fn setup_play(mut commands: Commands, server: Res) { margin: UiRect::all(Val::Px(5.0)), padding: UiRect::all(Val::Px(5.0)), border: UiRect::all(Val::Px(1.0)), - height: Val::Px(40.0), + height: Val::Px(30.0), ..default() }, BorderColor(WHITE.into()), @@ -271,7 +271,7 @@ fn setup_play(mut commands: Commands, server: Res) { BackgroundColor(BLACK.with_alpha(0.9).into()), Node { margin: UiRect::all(Val::Px(5.0)), - padding: UiRect::all(Val::Px(10.0)), + padding: UiRect::all(Val::Px(5.0)), border: UiRect::all(Val::Px(1.0)), ..default() }, @@ -301,8 +301,8 @@ fn setup_play(mut commands: Commands, server: Res) { parent .spawn(( Node { - padding: UiRect::all(Val::Px(10.0)), - margin: UiRect::all(Val::Px(10.0)), + padding: UiRect::all(Val::Px(5.0)), + margin: UiRect::all(Val::Px(5.0)), border: UiRect::all(Val::Px(1.0)), ..default() }, @@ -310,8 +310,15 @@ fn setup_play(mut commands: Commands, server: Res) { BorderColor(WHITE.into()), )) .with_children(|parent| { - parent.spawn(Text("Sets:".into())); - parent.spawn((Text("##".into()), SetCounter)); + parent.spawn(( + Text("Sets:".into()), + TextFont::default().with_font_size(12.0), + )); + parent.spawn(( + Text("##".into()), + SetCounter, + TextFont::default().with_font_size(12.0), + )); }); }); } @@ -344,7 +351,7 @@ fn setup_about(mut commands: Commands, server: Res) { margin: UiRect::all(Val::Px(5.0)), padding: UiRect::all(Val::Px(5.0)), border: UiRect::all(Val::Px(1.0)), - height: Val::Px(40.0), + height: Val::Px(30.0), ..default() }, BorderColor(WHITE.into()), @@ -368,7 +375,7 @@ fn setup_about(mut commands: Commands, server: Res) { margin: UiRect::all(Val::Px(5.0)), padding: UiRect::all(Val::Px(5.0)), border: UiRect::all(Val::Px(1.0)), - height: Val::Px(40.0), + height: Val::Px(30.0), ..default() }, BorderColor(WHITE.into()), @@ -458,7 +465,7 @@ fn setup_how_to_play(mut commands: Commands, deck: Res, server: Res, server: Res Vec3 { Vec3::new( ((*x as f32) * card_size[0]) - offset.x, ((*y as f32) * card_size[1]) - offset.y, - 0.0, + 1.0, ) / 2.25 } diff --git a/src/setup.rs b/src/setup.rs index 966988a..4796cf9 100644 --- a/src/setup.rs +++ b/src/setup.rs @@ -48,7 +48,7 @@ pub(crate) fn setup_cards( // Top of card pile is a "face down" card { let top_card_transform = Transform { - translation: Vec3::new(-200.0, 0.0, 99.0), + translation: Vec3::new(-125.0, 0.0, 99.0), ..default() }; let top_card_sprite = Sprite { @@ -93,7 +93,7 @@ pub(crate) fn setup_cards( let animation_target_id = AnimationTargetId::from_name(&name); let this_transform = - Transform::default().with_translation(Vec3::new(-200.0, 0.0, 0.0)); + Transform::default().with_translation(Vec3::new(-125.0, 0.0, 0.0)); let visibility = Visibility::Hidden; // Spawn card with a simple Transform parent so we can adjust the Z-axis for diff --git a/src/view.rs b/src/view.rs index ed0a4b1..eea345e 100644 --- a/src/view.rs +++ b/src/view.rs @@ -49,20 +49,37 @@ fn state_monitor( }); } -fn update_window_info(mut events: EventReader, mut _windows: Query<&mut Window>) { - events - .read() - .for_each(|WindowResized { height, width, .. }| { - info!("Window resized {} {}", height, width); +fn update_window_info(mut events: EventReader, mut window: Single<&mut Window>) { + if !events.is_empty() { + events.clear(); + let r = &mut window.resolution; - let new_scale_factor = { - let height_ratio = 800.0 / height; - let width_ratio = 500.0 / width; - height_ratio.min(width_ratio) - }; - // let window = windows.single_mut(); - // window.resolution.set_scale_factor(new_scale_factor); + // (640.0, 360.0) - info!("Proposed scale factor: {:?}", new_scale_factor); - }); + let a: f32 = match r.physical_width() as usize { + 0..=640 => 1.0, + 641..=1280 => 2.0, + 1281..=1920 => 3.0, + 1921.. => 4.0, + }; + + let b: f32 = match r.physical_height() as usize { + 0..=360 => 1.0, + 361..=720 => 2.0, + 721..=1080 => 3.0, + 1081.. => 4.0, + }; + + let n = a.min(b); + + r.set_scale_factor(n); + info!( + "Proposed scale factor: ({} -> {} / {} -> {}) {:?}", + r.width(), + a, + r.height(), + b, + n + ); + } }