Уроки · 15
Рисуем в точке клика
Осталось соединить два прошлых урока — «Клик мышью» и «Координаты мыши» — в одно: рисовать кружок не по центру экрана и не всегда, а только пока зажата кнопка, и именно там, где сейчас курсор.
Замени содержимое src/main.rs на это:
use macroquad::prelude::*;
#[macroquad::main("Рисуем в точке клика")]async fn main() { loop { clear_background(BLACK);
// Кнопка зажата — рисуем круг прямо под курсором. if is_mouse_button_down(MouseButton::Left) { let (x, y) = mouse_position(); draw_circle(x, y, 40.0, YELLOW); }
next_frame().await; }}Запусти как обычно:
cargo runЗажми левую кнопку мыши в любом месте — там появится жёлтый кружок, и будет следовать за курсором, пока кнопку не отпустишь. Попробуй прямо здесь:
Что здесь происходит
Заголовок раздела «Что здесь происходит»if is_mouse_button_down(...)— то же самое условие, что и в уроке про клик: код внутри выполняется, только пока кнопка зажата.mouse_position()внутри этогоif— та же функция, что и в уроке про координаты мыши, просто вызванная в нужном месте: раз она спрятана внутри условия, то и координаты берутся, только когда они вообще нужны — пока кнопка отпущена, эта строчка не выполняется вовсе.