mouse_input/
mouse_input.rs1use bevy::{
4 input::mouse::{AccumulatedMouseMotion, AccumulatedMouseScroll},
5 prelude::*,
6};
7
8fn main() {
9 App::new()
10 .add_plugins(DefaultPlugins)
11 .add_systems(Update, (mouse_click_system, mouse_move_system))
12 .run();
13}
14
15fn mouse_click_system(mouse_button_input: Res<ButtonInput<MouseButton>>) {
17 if mouse_button_input.pressed(MouseButton::Left) {
18 info!("left mouse currently pressed");
19 }
20
21 if mouse_button_input.just_pressed(MouseButton::Left) {
22 info!("left mouse just pressed");
23 }
24
25 if mouse_button_input.just_released(MouseButton::Left) {
26 info!("left mouse just released");
27 }
28}
29
30fn mouse_move_system(
32 accumulated_mouse_motion: Res<AccumulatedMouseMotion>,
33 accumulated_mouse_scroll: Res<AccumulatedMouseScroll>,
34) {
35 if accumulated_mouse_motion.delta != Vec2::ZERO {
36 let delta = accumulated_mouse_motion.delta;
37 info!("mouse moved ({}, {})", delta.x, delta.y);
38 }
39 if accumulated_mouse_scroll.delta != Vec2::ZERO {
40 let delta = accumulated_mouse_scroll.delta;
41 info!("mouse scrolled ({}, {})", delta.x, delta.y);
42 }
43}