mirror of
https://github.com/bevyengine/bevy
synced 2024-12-12 06:12:30 +00:00
321d998615
# Objective Make it easier to check if some set of inputs matches a key, such as if you want to allow all of space or up or w for jumping. Currently, this requires: ```rust if keyboard.pressed(KeyCode::Space) || keyboard.pressed(KeyCode::Up) || keyboard.pressed(KeyCode::W) { // ... ``` ## Solution Add an implementation of the helper methods, which very simply iterate through the items, used as: ```rust if keyboard.any_pressed([KeyCode::Space, KeyCode::Up, KeyCode::W]) { ```
21 lines
568 B
Rust
21 lines
568 B
Rust
use bevy::{
|
|
input::{keyboard::KeyCode, Input},
|
|
prelude::*,
|
|
};
|
|
|
|
fn main() {
|
|
App::new()
|
|
.add_plugins(DefaultPlugins)
|
|
.add_system(keyboard_input_system)
|
|
.run();
|
|
}
|
|
|
|
/// This system prints when Ctrl + Shift + A is pressed
|
|
fn keyboard_input_system(input: Res<Input<KeyCode>>) {
|
|
let shift = input.any_pressed([KeyCode::LShift, KeyCode::RShift]);
|
|
let ctrl = input.any_pressed([KeyCode::LControl, KeyCode::RControl]);
|
|
|
|
if ctrl && shift && input.just_pressed(KeyCode::A) {
|
|
info!("Just pressed Ctrl + Shift + A!");
|
|
}
|
|
}
|