Fixed multiple or no controllers crashing

master
Wynd 2025-01-15 10:53:04 +02:00
parent f42f13a00d
commit bddf41274a
2 changed files with 17 additions and 13 deletions

View File

@ -133,18 +133,20 @@ fn start_button_logic(
let mut score_text = score_text_query.single_mut();
let (mut player_transform, mut player_visibility) = player_query.single_mut();
let gamepad = gamepads.single();
let gamepad = gamepads.get_single();
if gamepad.just_pressed(GamepadButton::Start) {
start_game(
&mut score_text,
&mut score,
&mut state,
&mut ui_elems_query,
&mut player_visibility,
&mut player_transform,
);
return;
if let Ok(gamepad) = gamepad {
if gamepad.just_pressed(GamepadButton::Start) {
start_game(
&mut score_text,
&mut score,
&mut state,
&mut ui_elems_query,
&mut player_visibility,
&mut player_transform,
);
return;
}
}
let (interaction, mut border_color) = button.single_mut();

View File

@ -59,10 +59,12 @@ fn move_player(
window: Query<&Window>,
) {
let (mut transform, mut velocity) = query.single_mut();
let gamepad = gamepads.single();
let gamepad = gamepads.get_single();
velocity.0 = Vec2::ZERO;
handle_gamepad_movement(gamepad, &mut velocity);
if let Ok(gamepad) = gamepad {
handle_gamepad_movement(gamepad, &mut velocity);
}
if keys.pressed(KeyCode::ArrowRight) {
velocity.x += 1.0;