integrated particle system into player positions

This commit is contained in:
Nixon 2022-08-24 14:35:05 +08:00
commit f35f7abce7
2 changed files with 100 additions and 11 deletions

View file

@ -31,7 +31,8 @@ impl Plugin for GamePlugin {
.add_system_set(
SystemSet::on_update(AppState::Game)
.with_system(crate::levels::post_setup_level)
.with_system(keyboard_input_system),
.with_system(keyboard_input_system)
.with_system(character_particle_effect_system),
)
.add_system_set(SystemSet::on_update(AppState::Win).with_system(keyboard_input_system))
.add_system_to_stage(CoreStage::PostUpdate, collision_event_system);
@ -259,6 +260,25 @@ fn keyboard_input_system(
}
}
fn character_particle_effect_system(
mut characters: Query<(&CharacterId, &Transform, &CharacterColor)>,
mut particle_effect: ResMut<crate::particle_effect::ParticleEffectResource>,
mut level_query: Query<(&SelectedCharacterId)>,
) {
if let Ok(selected_character_id) = level_query.get_single_mut() {
if let Some(selected_character_id) = &selected_character_id.0 {
if let Some((_character_id, transform, color)) = characters
.iter_mut()
.find(|(character_id, _transform, _color)| {
*character_id == selected_character_id
}) {
particle_effect.translation = transform.translation;
particle_effect.color = color.0;
}
}
}
}
fn win_setup(mut commands: Commands, asset_server: Res<AssetServer>) {
let font = asset_server.get_handle("UacariLegacy-Thin.ttf");
commands