From af1d9d7159b81835170386325fbfcd12b4878361 Mon Sep 17 00:00:00 2001 From: raphael Date: Thu, 4 Apr 2024 23:08:55 +0200 Subject: [PATCH] Ajout de l'ui du menu --- crates/border-wars/assets/menu/button.png | Bin 0 -> 1873 bytes crates/border-wars/src/scenes/menu.rs | 177 +++++++++++++++++----- 2 files changed, 142 insertions(+), 35 deletions(-) create mode 100644 crates/border-wars/assets/menu/button.png diff --git a/crates/border-wars/assets/menu/button.png b/crates/border-wars/assets/menu/button.png new file mode 100644 index 0000000000000000000000000000000000000000..c31c44b423c46fa26c0c887902075ede6fceb939 GIT binary patch literal 1873 zcmV-X2d?;uP)OB6Dsp#-6@v~;JvR6PNwxzC~Pzf`rg)T1wLx%L31QVSIn z9~x5#PRg2u5SutojMtg!H=Z$u*kpl1JbFF{v!H!R9(Z%N=9QI0Q&&! z2e1o3AAlYJegMIjegPsP_sat)0>}VZ05A(+8o*su*Nm5a_nVG=G8$6=8~|_(z!-o) zqrc|~_+R!IiHKa!C={E$#R7l?fU5v*sk&xv=6kW>*e9bgFMy)}J_XQUeHI15zA)N% z^&_}F0$*=8+B!Pm@wM?^C=t;*8Ras{D>;-Fv&cV6;mPbg@(XFeto8j7fb#&Zsk&C# z$oF+au}?;0BLL1gk@xq85PEAry7v#l+s@eqbMU&<`Wvd1Io zcp}*>_zh!kPu+Yap%0A=Vdp0&p?EwTVP3f#E zcrqH3_3}D^E;*y`|KJ4Y=81^5Dn+q6Exnd*OTX=oKcms<`dL|88HjAd&QtF(^h88k zouXL1mTucia(r@W_G8%ik{;+E` zx37$qwe*M_I}Bf_ivvtV)Iy}&k>iJ*13sOM#%kLb)StS`1yg#|C-(NPm9p0j!bitAPftYDsuZQ#@v2jH-)m>~qX2s4!YR3Eiin6>mvmgV zwUMsdeXqq{wkbwvWIuNZsnnfW+P-w;LoPBKNU3MhjFgs^aztL`3dn=e-(x)8r@<5xJ3_cZt1W zl*$}qA|e+uN+o$y1&O_NuR^0(;y4o#xrkA&oyc3U&&s3n%BuU*5)n}gD`!`ngI|`| zKa@wsOqOFxMC2lMU7wfO&i>M_Tdh{#3ix^BgON*+C#o#z-65xGcR*QX@*cL0AXkPHTk&qx@nkLp1#X5CL(eH>A7@W`YxS!ZcF%={IWDT z%`qk-a)G*@TYYz8e*?f`A-#x|dovtoBBB;19haU<*X_PnW3TF(0pNl>PG6hg_6bBp zt;#f!j!!rT|Et~i+L^t$3?L;-buu@S9A_e;79{;HELck}({|S_wb-k=RsnEM9;dGU zjZ$`*<4i=InY{%6I)JOPan9WNKVVi2jx!Na3y@w*x9yG3uG&4X z@ice~KgrcrGM)4A;w8@C6A^87rfK!szGC)~oYg;n#H(Vj>Y7|x6_sV0%eU`i{`V^k zJ`vGYWtvu}rPtDJ0N<;+mVf?ez2Wh(Rqr4?K9)Zkh}W;ZSC#w_l7vqL`1L2 z%AE(+2eESEZ5q~U$v*-7pz7M1YvmPH*VcWM$!Kg8z!?C2^0j|k4?-hD=pG(~HyGr2 z6A`^)m3$uAsXJJj{1?T?8Ry9t>~-`v*86H3ian~q_X0Qy;4=W*tIwh!*cV3ou6_ji z!tnQWqphn09-oinPDHd$vPQnVoU`sQRai({^YQtGbp47*Syp)-z%~0q*mc`*>>bHy zOeXC|02~8w2tdP6ZasdV^`8L|5jA0&Fp8ySe=5u26ZY) { z_index: ZIndex::Local(0), ..default() }) - .insert(MenuEntity); + .insert(MenuEntity) + .with_children(|child: &mut ChildBuilder| renderer(child, &asset_server)); create_side_button( UiRect { @@ -132,20 +131,6 @@ fn menu_ui2(mut commands: Commands, asset_server: Res) { hovered_texture: asset_server.load("menu/info_hover.png"), }, ); - - renderer( - &asset_server, - commands, - Some(HoveredTexture { - texture: asset_server.load("menu/border_wars.png"), - hovered_texture: asset_server.load("menu/border_wars.png"), - }), - None, - Val::Px(78.), - Val::Px(614.), - Val::Px(25.), - Val::Px(333.), - ) } /// A function to create a side button. @@ -170,36 +155,158 @@ fn create_side_button( .insert((target_scene, textures, MenuEntity)); } -fn renderer( - asset_server: &Res, - mut background: Commands, - textures: Option, - texture: Option<&str>, +fn renderer(commands: &mut ChildBuilder, asset_server: &Res) { + render( + commands, + (UiImage { + texture: asset_server.load("menu/border_wars.png"), + ..default() + }, + ), + Val::Px(78.), + Val::Px(614.), + Val::Px(25.), + Val::Px(333.), + ); + + render( + commands, + (UiImage { + texture: asset_server.load("menu/host_icon.png"), + ..default() + }, + ), + Val::Px(42.), + Val::Px(53.), + Val::Px(223.), + Val::Px(356.), + ); + + render( + commands, + (UiImage { + texture: asset_server.load("menu/host.png"), + ..default() + }, + ), + Val::Px(38.), + Val::Px(105.), + Val::Px(229.), + Val::Px(429.), + ); + + render( + commands, + (UiImage { + texture: asset_server.load("menu/trait.png"), + ..default() + }, + ), + Val::Px(7.), + Val::Px(427.), + Val::Px(279.), + Val::Px(426.), + ); + + render( + commands, + (UiImage { + texture: asset_server.load("menu/button.png"), + ..default() + }, + ), + Val::Px(34.), + Val::Px(253.), + Val::Px(299.), + Val::Px(513.), + ); + + render( + commands, + (UiImage { + texture: asset_server.load("menu/join_icon.png"), + ..default() + }, + ), + Val::Px(41.), + Val::Px(63.), + Val::Px(393.), + Val::Px(353.), + ); + + render( + commands, + (UiImage { + texture: asset_server.load("menu/join.png"), + ..default() + }, + ), + Val::Px(38.), + Val::Px(101.), + Val::Px(392.), + Val::Px(428.), + ); + + render( + commands, + (UiImage { + texture: asset_server.load("menu/trait.png"), + ..default() + }, + ), + Val::Px(7.), + Val::Px(427.), + Val::Px(443.), + Val::Px(426.), + ); + + render( + commands, + (UiImage { + texture: asset_server.load("menu/button.png"), + ..default() + }, + ), + Val::Px(34.), + Val::Px(253.), + Val::Px(463.), + Val::Px(513.), + ); + + render( + commands, + (UiImage { + texture: asset_server.load("menu/airplane.png"), + ..default() + }, + ), + Val::Px(30.), + Val::Px(35.), + Val::Px(465.), + Val::Px(777.), + ); + +} + +fn render( + background: &mut ChildBuilder, + textures: T, height: Val, width: Val, top: Val, left: Val, ) { - let mut i = background + background .spawn(ImageBundle { style: Style { height, width, top, left, + position_type: PositionType::Absolute, ..default() }, - image: match textures { - Some(ref textures) => textures.texture.clone().into(), - _ => match texture { - Some(texture) => asset_server.load(texture).into(), - _ => panic!("PAS DE TEXTURES FRER"), - }, - }, ..default() - }); - if textures.is_some() { - i.insert(textures.unwrap()); - } - + }) + .insert(textures); }