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