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

Уроки · 21

Линия на экране

До сих пор мы рисовали только круги. В macroquad есть и другие фигуры — например, draw_line, которая рисует прямой отрезок между двумя точками.

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

src/main.rs
use macroquad::prelude::*;
#[macroquad::main("Линия")]
async fn main() {
loop {
clear_background(BLACK);
// Центр экрана.
let center_x = screen_width() / 2.0;
let center_y = screen_height() / 2.0;
// Координаты курсора.
let (mouse_x, mouse_y) = mouse_position();
// Отрезок от центра до курсора.
draw_line(center_x, center_y, mouse_x, mouse_y, 4.0, YELLOW);
next_frame().await;
}
}

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

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

Линия тянется от центра экрана прямо к курсору, куда бы ты его ни навёл. Попробуй прямо здесь:

  • draw_line(x1, y1, x2, y2, толщина, цвет) — рисует отрезок от точки (x1, y1) до точки (x2, y2). Первая точка здесь — центр экрана, вторая — курсор.
  • Четвёртый аргумент, 4.0, — толщина линии в пикселях. Чем больше число, тем толще отрезок.
  • Так как координаты курсора считаются заново каждый кадр (как и в уроке «Координаты мыши»), линия тут же перерисовывается вслед за ним.