diff --git a/game_core/src/entities/player.rs b/game_core/src/entities/player.rs index 1dda5b356c9f7da0996c59a030808ab891ff0191..c6a6fda47e2ac21c3a7162711b7c3abd00e4fbb7 100644 --- a/game_core/src/entities/player.rs +++ b/game_core/src/entities/player.rs @@ -54,28 +54,25 @@ pub fn handle_input( input: PolyInputManager, mut query: Query<(&mut Velocity, &KinematicCharacterControllerOutput), With<Player>>, ) { - let mut delta_x = None; - let mut delta_y = None; - for (mut velocity, controller) in &mut query { - if controller.grounded && input.is_jump_just_pressed() { - delta_y = Some(40.0); - } + let delta_y = if controller.grounded && input.is_jump_just_pressed() { + Some(40.0) + } else { + None + }; - if input.is_right_pressed_or_active() { - delta_x = Some(200.0); + let delta_x = if input.is_right_pressed_or_active() { + 200.0 } else if input.is_left_pressed_or_active() { - delta_x = Some(-200.0); + -200.0 } else { - delta_x = Some(0.0); - } + 0.0 + }; if let Some(dy) = delta_y { velocity.y = dy; } - if let Some(dx) = delta_x { - velocity.x = dx; - } + velocity.x = delta_x; } }