mirror of
https://github.com/bevyengine/bevy
synced 2024-11-25 22:20:20 +00:00
parent
2b11202614
commit
6ce8e50068
3 changed files with 31 additions and 0 deletions
|
@ -430,6 +430,10 @@ path = "examples/input/mouse_input.rs"
|
||||||
name = "mouse_input_events"
|
name = "mouse_input_events"
|
||||||
path = "examples/input/mouse_input_events.rs"
|
path = "examples/input/mouse_input_events.rs"
|
||||||
|
|
||||||
|
[[example]]
|
||||||
|
name = "mouse_grab"
|
||||||
|
path = "examples/input/mouse_grab.rs"
|
||||||
|
|
||||||
[[example]]
|
[[example]]
|
||||||
name = "touch_input"
|
name = "touch_input"
|
||||||
path = "examples/input/touch_input.rs"
|
path = "examples/input/touch_input.rs"
|
||||||
|
|
|
@ -203,6 +203,7 @@ Example | File | Description
|
||||||
`keyboard_modifiers` | [`input/keyboard_modifiers.rs`](./input/keyboard_modifiers.rs) | Demonstrates using key modifiers (ctrl, shift)
|
`keyboard_modifiers` | [`input/keyboard_modifiers.rs`](./input/keyboard_modifiers.rs) | Demonstrates using key modifiers (ctrl, shift)
|
||||||
`mouse_input` | [`input/mouse_input.rs`](./input/mouse_input.rs) | Demonstrates handling a mouse button press/release
|
`mouse_input` | [`input/mouse_input.rs`](./input/mouse_input.rs) | Demonstrates handling a mouse button press/release
|
||||||
`mouse_input_events` | [`input/mouse_input_events.rs`](./input/mouse_input_events.rs) | Prints out all mouse events (buttons, movement, etc.)
|
`mouse_input_events` | [`input/mouse_input_events.rs`](./input/mouse_input_events.rs) | Prints out all mouse events (buttons, movement, etc.)
|
||||||
|
`mouse_grab` | [`input/mouse_grab.rs`](./input/mouse_grab.rs) | Demonstrates how to grab the mouse, locking the cursor to the app's screen
|
||||||
`touch_input` | [`input/touch_input.rs`](./input/touch_input.rs) | Displays touch presses, releases, and cancels
|
`touch_input` | [`input/touch_input.rs`](./input/touch_input.rs) | Displays touch presses, releases, and cancels
|
||||||
`touch_input_events` | [`input/touch_input_events.rs`](./input/touch_input_events.rs) | Prints out all touch inputs
|
`touch_input_events` | [`input/touch_input_events.rs`](./input/touch_input_events.rs) | Prints out all touch inputs
|
||||||
|
|
||||||
|
|
26
examples/input/mouse_grab.rs
Normal file
26
examples/input/mouse_grab.rs
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
use bevy::prelude::*;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
App::new()
|
||||||
|
.add_plugins(DefaultPlugins)
|
||||||
|
.add_system(grab_mouse)
|
||||||
|
.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
// This system grabs the mouse when the left mouse button is pressed
|
||||||
|
// and releases it when the escape key is pressed
|
||||||
|
fn grab_mouse(
|
||||||
|
mut windows: ResMut<Windows>,
|
||||||
|
mouse: Res<Input<MouseButton>>,
|
||||||
|
key: Res<Input<KeyCode>>,
|
||||||
|
) {
|
||||||
|
let window = windows.get_primary_mut().unwrap();
|
||||||
|
if mouse.just_pressed(MouseButton::Left) {
|
||||||
|
window.set_cursor_visibility(false);
|
||||||
|
window.set_cursor_lock_mode(true);
|
||||||
|
}
|
||||||
|
if key.just_pressed(KeyCode::Escape) {
|
||||||
|
window.set_cursor_visibility(true);
|
||||||
|
window.set_cursor_lock_mode(false);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue