Skip to content

Commit

Permalink
input clear should not clear pressed (bevyengine#4418)
Browse files Browse the repository at this point in the history
# Objective

- Revert bevyengine#4410 
- `Input<T>.clear()` is the method call at the end of each frame for inputs. Clearing `pressed` in it mean that checking if a key is pressed will always return false
  • Loading branch information
mockersf committed Apr 4, 2022
1 parent 8e864fd commit cf831d5
Showing 1 changed file with 6 additions and 10 deletions.
16 changes: 6 additions & 10 deletions crates/bevy_input/src/input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,10 @@ where
self.just_released.remove(&input);
}

/// Clear pressed, just pressed and just released information.
/// Clear just pressed and just released information.
pub fn clear(&mut self) {
self.just_pressed.clear();
self.just_released.clear();
self.pressed.clear();
}

/// List all inputs that are pressed.
Expand Down Expand Up @@ -167,23 +166,20 @@ mod test {
assert!(input.pressed(DummyInput::Input1));
assert!(input.pressed(DummyInput::Input2));

// Clear the `input`, removing pressed, just pressed and just released
// Clear the `input`, removing just pressed and just released
input.clear();

// After calling clear, inputs should still be pressed but not be just_pressed

// Check if they're marked "just pressed"
assert!(!input.just_pressed(DummyInput::Input1));
assert!(!input.just_pressed(DummyInput::Input2));

// Check if they're marked as pressed
assert!(!input.pressed(DummyInput::Input1));
assert!(!input.pressed(DummyInput::Input2));

// Test pressing
input.press(DummyInput::Input1);
input.press(DummyInput::Input2);
assert!(input.pressed(DummyInput::Input1));
assert!(input.pressed(DummyInput::Input2));

// Release the inputs and check state

input.release(DummyInput::Input1);
input.release(DummyInput::Input2);

Expand Down

0 comments on commit cf831d5

Please sign in to comment.