bevy-playground/src/main_menu.rs

72 lines
2.2 KiB
Rust

use bevy::prelude::*;
use crate::View;
#[derive(Component, Debug)]
pub struct MainMenu;
pub fn startup(mut commands: Commands) {
commands
.spawn((
MainMenu,
StateScoped(View::MainMenu),
Name::new("MenuRoot"),
NodeBundle {
style: Style {
width: Val::Percent(100.0),
height: Val::Percent(100.0),
justify_content: JustifyContent::SpaceBetween,
..default()
},
..default()
},
))
.with_children(|parent| {
// text
parent.spawn((
Name::new("Text"),
TextBundle::from_section(
"Text Example\nPress ENTER to play",
TextStyle {
font_size: 64.0,
..default()
},
)
.with_style(Style {
margin: UiRect::all(Val::Px(12.)),
..default()
}),
// Because this is a distinct label widget and
// not button/list item text, this is necessary
// for accessibility to treat the text accordingly.
Label,
));
parent.spawn((
Name::new("SomeFreakin'Square"),
NodeBundle {
style: Style {
width: Val::Px(200.0),
height: Val::Px(200.0),
position_type: PositionType::Absolute,
left: Val::Px(210.),
bottom: Val::Px(10.),
border: UiRect::all(Val::Px(20.)),
..default()
},
border_color: Color::srgb(0., 1., 0.).into(),
background_color: Color::srgb(0.4, 0.4, 1.).into(),
..default()
},
));
});
}
pub fn exit(mut commands: Commands, q: Query<Entity, With<MainMenu>>) {
for id in q.iter() {
commands.entity(id).despawn_recursive();
}
}
pub fn update() {}