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

Уроки · 78

Размер окна

В уроке «Как читать уроки» мы говорили, что окно твоей программы обычно меньше, чем экран в примерах на сайте, и что разберём, как открывать окно нужного размера сразу. Чтобы не растягивать его мышью каждый раз, размер можно задать в настройках.

До сих пор в #[macroquad::main(...)] мы передавали только название окна. Но туда можно передать и целую функцию, которая вернёт все настройки окна разом: и название, и размер.

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

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() из урока «Центр экрана» покажут новый размер.