Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bevyengine
GitHub Repository: bevyengine/bevy
Path: blob/main/examples/input/keyboard_input.rs
6595 views
1
//! Demonstrates handling a key press/release.
2
3
use bevy::{input::keyboard::Key, prelude::*};
4
5
fn main() {
6
App::new()
7
.add_plugins(DefaultPlugins)
8
.add_systems(Update, keyboard_input_system)
9
.run();
10
}
11
12
/// This system responds to certain key presses
13
fn keyboard_input_system(
14
keyboard_input: Res<ButtonInput<KeyCode>>,
15
key_input: Res<ButtonInput<Key>>,
16
) {
17
// KeyCode is used when you want the key location across different keyboard layouts
18
// See https://w3c.github.io/uievents-code/#code-value-tables for the locations
19
if keyboard_input.pressed(KeyCode::KeyA) {
20
info!("'A' currently pressed");
21
}
22
23
if keyboard_input.just_pressed(KeyCode::KeyA) {
24
info!("'A' just pressed");
25
}
26
if keyboard_input.just_released(KeyCode::KeyA) {
27
info!("'A' just released");
28
}
29
30
// Key is used when you want a specific key, no matter where it is located.
31
// This is useful for symbols that have a specific connotation, e.g. '?' for
32
// a help menu or '+'/'-' for zoom
33
let key = Key::Character("?".into());
34
if key_input.pressed(key.clone()) {
35
info!("'?' currently pressed");
36
}
37
if key_input.just_pressed(key.clone()) {
38
info!("'?' just pressed");
39
}
40
if key_input.just_released(key) {
41
info!("'?' just released");
42
}
43
}
44
45