Уроки · 78
Размер окна
В уроке «Как читать уроки» мы говорили, что окно твоей программы обычно меньше, чем экран в примерах на сайте, и что разберём, как открывать окно нужного размера сразу. Чтобы не растягивать его мышью каждый раз, размер можно задать в настройках.
До сих пор в #[macroquad::main(...)] мы передавали только название
окна. Но туда можно передать и целую функцию, которая вернёт все
настройки окна разом: и название, и размер.
Замени содержимое src/main.rs на это:
use macroquad::prelude::*;
// Настройки окна: заголовок и размер.fn window_conf() -> Conf { Conf { // Заголовок окна. Тут нужна строка, а не текст // в кавычках, поэтому дальше стоит .to_string(). window_title: "Круг".to_string(), // Ширина и высота окна в пикселях. window_width: 1280, window_height: 960, // Остальные настройки — какие были по умолчанию. ..Default::default() }}
// Вместо заголовка передаём функцию с настройками.#[macroquad::main(window_conf)]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Окно откроется сразу размером 1280 на 960 пикселей.
Что здесь происходит
Заголовок раздела «Что здесь происходит»fn window_conf() -> Conf— своя функция, как в уроке «Свои функции». Она ничего не принимает и возвращает настройки окна.Conf { ... }— набор настроек с именами, такой же структурой, как в уроке «Свои структуры», только готовой, из macroquad.window_widthиwindow_height— ширина и высота окна в пикселях.window_title: "Круг".to_string()— название окна. Настройки ждут здесь строку, а не просто текст в кавычках, поэтому дальше стоит.to_string(). Мы уже видели его в уроке «Строки»: там он делал строку из числа, а здесь делает её из текста...Default::default()— «все остальные настройки возьми такими, как они по умолчанию». Так не нужно перечислять каждое полеConf, мы меняем только нужные.#[macroquad::main(window_conf)]— вместо названия теперь функция с настройками. Такой блок можно добавить в любую программу из курса, заменив им строку#[macroquad::main("...")].- 1280 на 960 — те же пропорции 4 к 3, что и у примеров на сайте. Размер окна из настроек действует только в программе на твоём компьютере: у примеров на сайте свой размер экрана, 2560 на 1920. Поэтому пиксели в них могут выглядеть иначе, а форма окна будет той же.
- Окно по-прежнему можно растянуть мышью:
screen_width()иscreen_height()из урока «Центр экрана» покажут новый размер.