Перейти к содержимому

Уроки · 13

Клик мышью

Мышь — это ещё один источник ввода, помимо клавиатуры. В macroquad для неё есть своя функция — is_mouse_button_down — и работает она ровно так же, как is_key_down в уроке “Ввод с клавиатуры”: проверяет, зажата ли прямо сейчас указанная кнопка, на каждом кадре.

Замени содержимое src/main.rs на это:

src/main.rs
use macroquad::prelude::*;
#[macroquad::main("Клик мышью")]
async fn main() {
loop {
clear_background(BLACK);
// Левая кнопка мыши зажата — рисуем круг по центру экрана.
if is_mouse_button_down(MouseButton::Left) {
draw_circle(screen_width() / 2.0, screen_height() / 2.0, 100.0, YELLOW);
}
next_frame().await;
}
}

Запусти как обычно:

Окно терминала
cargo run

Зажми левую кнопку мыши — по центру экрана появится жёлтый кружок, и исчезнет, как только кнопку отпустишь. Попробуй прямо здесь:

  • MouseButton::Left — обозначение левой кнопки мыши, точно так же, как KeyCode::Up обозначало стрелку вверх.
  • is_mouse_button_down(MouseButton::Left) проверяет, зажата ли она прямо сейчас — та же самая идея, что и is_key_down, только источник другой.
  • Как только кнопку отпускаешь, if на этом кадре не выполняется, и кружок пропадает — ровно как и с клавиатурой.