Win text follows camera

This commit is contained in:
Pascal Engélibert 2022-08-27 09:08:14 +02:00
parent a859d72da3
commit e5b041c2c9
Signed by: tuxmain
GPG key ID: 3504BC6D362F7DCA
2 changed files with 25 additions and 5 deletions

View file

@ -17,7 +17,10 @@
* (?) multiplayer
* more audio
* "jumpable" component to avoid jumping on sensors
* bug: in level2, move the blue character to win, then reset. The characters are lighter than expected.
* bug: in level2, move the blue character to win, then reset. The characters are lighter than expected. (also level 4)
* wasm warning
* redshift warning
* itchio test
## Build

View file

@ -52,7 +52,8 @@ impl Plugin for GamePlugin {
.with_system(player_movement_system)
.with_system(level_keyboard_system)
.with_system(move_camera)
.with_system(character_particle_effect_system),
.with_system(character_particle_effect_system)
.with_system(move_win_text_system),
)
.add_system_to_stage(CoreStage::PostUpdate, collision_event_system);
}
@ -101,6 +102,9 @@ pub struct CollisionCount(usize);
#[derive(Component)]
pub struct Melty(pub Color);
#[derive(Component)]
pub struct WinText;
// Systems
fn setup(
@ -287,7 +291,7 @@ fn collision_event_system(
// If color approximately white
if app_state.current() == &AppState::Game
&& Vec4::from(new_color).min_element() >= 0.9
&& new_color.min_element() >= 0.9
{
app_state.replace(AppState::Win).ok();
}
@ -491,7 +495,8 @@ fn win_setup(
transform: Transform::from_xyz(0., 0., 3.),
..default()
})
.insert(Level);
.insert(Level)
.insert(WinText);
commands
.spawn_bundle(Text2dBundle {
text: Text::from_section(
@ -506,7 +511,8 @@ fn win_setup(
transform: Transform::from_xyz(0., 0., 4.),
..Default::default()
})
.insert(Level);
.insert(Level)
.insert(WinText);
}
fn move_camera(
@ -535,6 +541,17 @@ fn move_camera(
}
}
fn move_win_text_system(
camera_query: Query<&Transform, With<Camera>>,
mut win_text_query: Query<&mut Transform, (With<WinText>, Without<Camera>)>,
) {
let camera_pos = camera_query.single();
for mut pos in win_text_query.iter_mut() {
pos.translation.x = camera_pos.translation.x;
pos.translation.y = camera_pos.translation.y;
}
}
fn level_keyboard_system(
mut commands: Commands,
mut current_level: ResMut<CurrentLevel>,