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