docs/bevy/examples/input/mouse_input_events.rs 1.7 K · 58 lines · raw · history

1 //! Prints all mouse events to the console.
2
3 use bevy::{
4 input::{
5 gestures::*,
6 mouse::{MouseButtonInput, MouseMotion, MouseWheel},
7 },
8 prelude::*,
9 };
10
11 fn main() {
12 App::new()
13 .add_plugins(DefaultPlugins)
14 .add_systems(Update, print_mouse_events_system)
15 .run();
16 }
17
18 /// This system prints out all mouse events as they come in
19 fn print_mouse_events_system(
20 mut mouse_button_input_reader: MessageReader<MouseButtonInput>,
21 mut mouse_motion_reader: MessageReader<MouseMotion>,
22 mut cursor_moved_reader: MessageReader<CursorMoved>,
23 mut mouse_wheel_reader: MessageReader<MouseWheel>,
24 mut pinch_gesture_reader: MessageReader<PinchGesture>,
25 mut rotation_gesture_reader: MessageReader<RotationGesture>,
26 mut double_tap_gesture_reader: MessageReader<DoubleTapGesture>,
27 ) {
28 for mouse_button_input in mouse_button_input_reader.read() {
29 info!("{:?}", mouse_button_input);
30 }
31
32 for mouse_motion in mouse_motion_reader.read() {
33 info!("{:?}", mouse_motion);
34 }
35
36 for cursor_moved in cursor_moved_reader.read() {
37 info!("{:?}", cursor_moved);
38 }
39
40 for mouse_wheel in mouse_wheel_reader.read() {
41 info!("{:?}", mouse_wheel);
42 }
43
44 // This event will only fire on macOS
45 for pinch_gesture in pinch_gesture_reader.read() {
46 info!("{:?}", pinch_gesture);
47 }
48
49 // This event will only fire on macOS
50 for rotation_gesture in rotation_gesture_reader.read() {
51 info!("{:?}", rotation_gesture);
52 }
53
54 // This event will only fire on macOS
55 for double_tap_gesture in double_tap_gesture_reader.read() {
56 info!("{:?}", double_tap_gesture);
57 }
58 }