Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bevyengine
GitHub Repository: bevyengine/bevy
Path: blob/main/examples/input/mouse_input.rs
6595 views
1
//! Prints mouse button events.
2
3
use bevy::{
4
input::mouse::{AccumulatedMouseMotion, AccumulatedMouseScroll},
5
prelude::*,
6
};
7
8
fn main() {
9
App::new()
10
.add_plugins(DefaultPlugins)
11
.add_systems(Update, (mouse_click_system, mouse_move_system))
12
.run();
13
}
14
15
// This system prints messages when you press or release the left mouse button:
16
fn 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
30
// This system prints messages when you finish dragging or scrolling with your mouse
31
fn 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
}
44
45